This repository has been archived by the owner on Sep 22, 2019. It is now read-only.
forked from osuosl/django_object_permissions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
75 lines (51 loc) · 2.35 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
========================================
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.