Skip to content
This repository has been archived by the owner on Sep 22, 2019. It is now read-only.

This is an implementation of Object Permissions, a.k.a. row level permissions. Object Permissions allow you to assign a permission to an instance of any Model in your django project. This app provides a authentication backend that works with Django >= 1.2.

License

Notifications You must be signed in to change notification settings

pbanaszkiewicz/django_object_permissions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

========================================
Django Object Permissions 
========================================

This is an implementation of Object Permissions, a.k.a. row level permissions.
Object Permissions allow you to assign a permission to an instance of any
Model in your django project.  This app provides a authentication backend
that works with Django >= 1.2.

This specific implementation includes the ability to assign permissions to
Users and UserGroups. Later versions may include the ability to create
PermissionGroups and ObjectPermissionGroups.

Installation
----------------------------------------

There are several ways to install Object Permissions.

Object Permissions ships a standard distutils setup.py. A classic invocation
to install from setup.py might be::

 $ python setup.py install

You may need to add sudo in order to install to the system Python.

::

 $ sudo python setup.py install

We also have Object Permissions on PyPI, so it can be installed using pip.
(easy_install also works, but we do not recommend easy_install. Just use pip.)

::

 $ pip install django-object-permissions

If you are installing Object Permissions directly into a Django app, and want
to distribute Object Permissions with your app, simply copy the
object_permissions folder into your Django project.

Configuring Your Django Project
----------------------------------------

1) Add "object_permissions" to INSTALLED_APPS
2) Add "object_permissions.backend.ObjectPermBackend" to AUTHENTICATION_BACKENDS. 
3) Run ./manage.py syncdb

if South is enabled for your project you will need to create tables using migrate

3b) Run ./manage.py migrate

Using Object Permissions
----------------------------------------

First, register some permissions onto a Model in your models.py. This can only
be done once per model; see registration.py for more information.

>>> from object_permissions import register
>>> register(['permission'], Model)

Now, that permission can be granted, revoked, or checked for any instance of
that Model.

>>> user.grant('permission', object)
>>> user.revoke('permission', object)
>>> user.has_perm('permission', object)
>>> group.grant('permission', object)
>>> group.revoke('permission', object)

Authors
-------

Object Permissions was originally implemented by Peter Krenesky at the Oregon
State University Open Source Lab (OSUOSL). This release is maintained by
Ken Lett.

About

This is an implementation of Object Permissions, a.k.a. row level permissions. Object Permissions allow you to assign a permission to an instance of any Model in your django project. This app provides a authentication backend that works with Django >= 1.2.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 84.3%
  • JavaScript 14.9%
  • CSS 0.8%