django-bop 0.3

Basic Object-level Permissions in django (1.2+)

Django-bop provides Basic Object-level Permissions for django 1.2 and later. It is based on the django-advent article 'Object Permissions' by Florian Apolloner.

Although there are a few other permission backends I wanted a simple(r) backend that closely matches the existing django functionality.

Features

Django-bop provides several mechanisms to manage and check the permissions for objects:

  • bop.admin.ObjectAdmin
  • bop.forms.inline_permissions_form_factory
  • api.grant and api.revoke
  • bop.backends.ObjectBackend
  • ifhasperm templatetag
  • bop.managers.UserObjectManager
  • bop.managers.ObjectPermissionManager

Also of interest:

  • has_model_perms

Installation

Install it in your (virtual) environment:

$ pip install django-bop

If you haven't already you should also install south:

$ pip install South

Add 'bop' (and south) to you INSTALLED_APPS in settings.py:

INSTALLED_APPS = (
  ...
  'south',
  'bop',
)

While in settings.py specify the AUTHENTICATION_BACKENDS:

AUTHENTICATION_BACKENDS = (
      'django.contrib.auth.backends.ModelBackend',
      'bop.backends.ObjectBackend',
)

If you, optionally, want to give permissions to anonymous users you should do the following:

  1. Add a user to contrib.auth.models.User to represent anonymous users (e.g. via the admin). Give it an appropriate name (anon / anonymous) so it easily recognized when assigning permissions.

  2. Add ANONYMOUS_USER_ID to settings.py:

    ANONYMOUS_USER_ID = 2
    

If, in addition -- and again optionally -- you want to support Model-permissions for anonymous users, you can add the AnonymousModelBackend:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'bop.backends.AnonymousModelBackend',
    'bop.backends.ObjectBackend',
)

When all configuration is done, bring the database up to date:

$ ./manage.py migrate bop
BSD

Author

Peter van Kampen

Pip

django-bop==0.3

Classifiers

  • Environment :: Web Environment
  • Framework :: Django
  • Intended Audience :: Developers
  • Operating System :: OS Independent
  • Programming Language :: Python
  • Development Status :: 4 - Beta
File Type Python Version Uploaded On Downloads
django-bop-0.3.tar.gz Source Oct. 20, 2011 2,525
Version Release Date
0.3 Oct. 20, 2011
0.2 Aug. 24, 2015
Date Package Version Action
Aug. 24, 2015, 10:59 p.m. django-bop 0.2 Release Created
Aug. 24, 2015, 10:59 p.m. django-bop 0.3 Release Created
Aug. 24, 2015, 10:59 p.m. django-bop Package Created