Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A method for adding object-level or row-level permissions

Project Description

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.


There are several ways to install Object Permissions.

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

$ python install

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

$ sudo python 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 ./ syncdb

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

3b) Run ./ migrate

Using Object Permissions

First, register some permissions onto a Model in your This can only be done once per model; see 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)


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

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(84.4 kB) Copy SHA256 Hash SHA256
Source None Jun 6, 2013

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers