Skip to content

Commit

Permalink
Merge pull request #470 from alephmelo/alephmelo-patch-1
Browse files Browse the repository at this point in the history
Update README.rst with a nice looking syntax highlight.
  • Loading branch information
ad-m committed Nov 19, 2016
2 parents 091a6f5 + 82251ea commit e3c7dd4
Showing 1 changed file with 33 additions and 23 deletions.
56 changes: 33 additions & 23 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,23 @@ Configuration

We need to hook ``django-guardian`` into our project.

1. Put ``guardian`` into your ``INSTALLED_APPS`` at settings module::
1. Put ``guardian`` into your ``INSTALLED_APPS`` at settings module:

INSTALLED_APPS = (
...
'guardian',
)
.. code:: python
INSTALLED_APPS = (
...
'guardian',
)
2. Add extra authorization backend to your `settings.py`::
2. Add extra authorization backend to your ``settings.py``:

.. code:: python
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend', # default
'guardian.backends.ObjectPermissionBackend',
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend', # default
'guardian.backends.ObjectPermissionBackend',
)
4. Create ``guardian`` database tables by running::

Expand All @@ -58,20 +62,24 @@ Usage
After installation and project hooks we can finally use object permissions
with Django_.

Lets start really quickly::
Lets start really quickly:

>>> from django.contrib.auth.models import User, Group
>>> jack = User.objects.create_user('jack', 'jack@example.com', 'topsecretagentjack')
>>> admins = Group.objects.create(name='admins')
>>> jack.has_perm('change_group', admins)
False
>>> from guardian.models import UserObjectPermission
>>> UserObjectPermission.objects.assign_perm('change_group', jack, obj=admins)
<UserObjectPermission: admins | jack | change_group>
>>> jack.has_perm('change_group', admins)
True
.. code:: python
Of course our agent jack here would not be able to *change_group* globally::
>>> from django.contrib.auth.models import User, Group
>>> jack = User.objects.create_user('jack', 'jack@example.com', 'topsecretagentjack')
>>> admins = Group.objects.create(name='admins')
>>> jack.has_perm('change_group', admins)
False
>>> from guardian.models import UserObjectPermission
>>> UserObjectPermission.objects.assign_perm('change_group', jack, obj=admins)
<UserObjectPermission: admins | jack | change_group>
>>> jack.has_perm('change_group', admins)
True
Of course our agent jack here would not be able to *change_group* globally:

.. code:: python
>>> jack.has_perm('change_group')
False
Expand All @@ -82,7 +90,9 @@ Admin integration
Replace ``admin.ModelAdmin`` with ``GuardedModelAdmin`` for those models
which should have object permissions support within admin panel.

For example::
For example:

.. code:: python
from django.contrib import admin
from myapp.models import Author
Expand Down

0 comments on commit e3c7dd4

Please sign in to comment.