Permissions

A grid of all packages implementing permissions for users and groups in your Django project.

Please fell free to verify and update features for listed apps or add another app if you know one.

Features currently being evaluated

FeatureDescription
Object-level Support for permissions assigned per object.
Django 1.2 backend See: http://docs.djangoproject.com/en/dev/releases/1.2/#object-level-permissions
.
Decorator Object-level decorator for views.
Logical checks Support for permission checked dynamically, e.g. can view entry no older than
one month.
Database Is a database required? If not, how are permissions stored?
Declaration Do you declare permissions for models? How?
Assignment How do you assign permissions for objects?
Templatetag Permissions checks in templates via tags.
Inheritance Permissions inheritance from related objects.
Roles Support for roles in permissions.
Field level Supports permissions at the field level of models
Cascade update Support for cascade update of related objects, e.g. if added view or change perm
for the product, then add view perm for the product category.
Any-to-any Permissions for any object to any other object.
Model-level Support for model-level perms (either on its own or by seamless integration with
django.contrib.auth permissions).
Package django-guardian rules django-permission django-rules django-authority django-role-permissions dry-rest-permissions django-objectpermissions django-rbac django-rulez django-permissionsx carteblanche django-extauth django-hierarchical-auth django-permission-backend-nonrel django-tabular-permissions django-global-permissions django-permissions django-finegrained-permissions django-trusts django-rubberstamp django-acl Django Object Permissions django-generic-permissions django_sieve django-acl django-auth-utils django-custodian django-roles django-flexible-permissions django-pobject django-bop django-admin-view-permission
Package django-guardian rules django-permission django-rules django-authority django-role-permissions dry-rest-permissions django-objectpermissions django-rbac django-rulez django-permissionsx carteblanche django-extauth django-hierarchical-auth django-permission-backend-nonrel django-tabular-permissions django-global-permissions django-permissions django-finegrained-permissions django-trusts django-rubberstamp django-acl Django Object Permissions django-generic-permissions django_sieve django-acl django-auth-utils django-custodian django-roles django-flexible-permissions django-pobject django-bop django-admin-view-permission
Description Per object permissions for
Django
Awesome Django authorization,
without the database
An enhanced permission system
which support object
permission in Django
Flexible and scalable Django
authorization backend for
unified per object permission
management
A Django app that provides
generic per-object-permissions
for Django's auth app and
helpers to create custom
permission checks.
A django app for role based
permissions.
Rules based permissions for
the Django Rest Framework
An app to add
object-level/row-level
permissions to users and
groups. Each model can have
different permissions.
Role-based Access Control
(RBAC) implementation for
management of permissions in
Django. Allows a fine-grained
(row level) permission
assignment. Perfect for ...
A lean and mean object-level
rules system for the Django
framework
PermissionsX - Authorization
for Django
Module to align code with
thoughts of users and
designers. Also magically
handles navigation and
permissio...
Extended authorization
framework for Django,
including field-level
permissions and role-based
permissions
Extends django auth allowing
hierarchical permissions
An authentication backend that
supports Django's user and
group permissions on
Django-nonrel
Display Django permissions in
a tabular format that is
translatable and easy
customized.
Global permissions for Django Permissions per field instead
of per model for django
Django authorization add-on
for multiple organizations and
object-level permission
settings
Permissions manager and
backend for Django 1.2,
supporting object permissions
and application-specific
permissions.
Access Control Lists for
django aka per-row
permissions. Largely inspired
on phpBB's ACL. Support for
roles.
This is an implementation of
Object Permissions, a.k.a. row
level permissions. Object
Permissions allow you to
assign a permission to ...
A simple Authentication
Backend to manage specific
permissions.
Serve user-wise data
beautifully, minimally and
correctly.
Django authentication and
authorization utilities
The application
django-custodian wrap and
extend django.contrib.auth
module providing a exaustive
and granular approach to
authorizations and permissions
management. It ...
Django Roles with
Role-Group-Permission-User
A Django app that combines
object-level table permissions
with model relations to avoid
normalization of data while
providing an extremely ...
An expressive and concise mini
permission module for Django
views.
Basic Object-level Permissions
for django 1.2+
Reusable application which
provides a view permission for
the existing models.
CategoryAppAppFrameworkAppAppAppAppAppAppAppAppOtherAppAppAppAppAppFrameworkOtherAppAppAppAppAppAppAppAppAppAppAppOtherAppApp
# Using This3133334200511013005010001001011101
Python 3?
Development Status Production/Stable Production/Stable Production/Stable n/a Alpha Production/Stable Alpha Unknown Beta Unknown Production/Stable Unknown n/a Unknown n/a Production/Stable Pre-Alpha Production/Stable Beta Beta n/a n/a Unknown Production/Stable Pre-Alpha Unknown Alpha n/a Unknown Unknown n/a Beta Production/Stable
Last updated July 17, 2016, 5:54 p.m. Dec. 7, 2015, 4:43 a.m. July 12, 2016, 10:07 p.m. July 16, 2011, 11:32 a.m. July 16, 2016, 5:19 p.m. July 1, 2016, 1:13 p.m. Feb. 5, 2016, 11:25 a.m. Oct. 8, 2010, 7:23 a.m. March 31, 2010, 11:04 p.m. April 13, 2015, 4:11 p.m. June 11, 2016, 6:03 p.m. July 3, 2014, 11:51 a.m. Dec. 10, 2011, 8:42 p.m. Jan. 5, 2011, 3:03 p.m. April 9, 2011, 4:27 p.m. March 16, 2016, 7:27 p.m. Dec. 1, 2015, 9:03 a.m. June 21, 2015, 12:25 p.m. Oct. 6, 2013, 2:36 p.m. April 30, 2016, 3:17 a.m. Oct. 28, 2010, 6:27 p.m. Aug. 23, 2009, 4:17 p.m. June 6, 2013, 6:33 p.m. Jan. 9, 2013, 10:47 p.m. June 4, 2014, 3:59 p.m. Oct. 8, 2015, 7:49 p.m. March 4, 2016, 9 a.m. Nov. 10, 2011, 7:31 p.m. Jan. 28, 2015, 4:04 p.m. Dec. 10, 2015, 9:21 p.m. March 4, 2011, 11:24 a.m. Oct. 20, 2011, 9:16 a.m. July 13, 2016, 4:58 a.m.
Version1.4.41.1.10.9.2n/a0.111.20.1.60.3.30.91.0.21.3.41.0.0n/a1.4.6n/a1.0.80.2.21.2.20.0.10.10.3n/an/a1.4.60.1.01.0.00.1.30.1rc1n/a0.0.41.0.7n/a0.30.3
RepoGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubBitbucketGithubBitbucketGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubGithubGithubBitbucketGithubGithubBitbucketGithubGithub
Commits
Stars1170317181147124107106826863372621191613131110107654444333222
Repo Forks32120391039301274165427n/a13824122111n/an/an/an/an/an/an/a
Participantslukaszb
brianmay
ad-m
bsvetchine
mitar
emperorcezar
troygrosfield
xordoquy
ggreer
clarkperkins
more...
dfunckt
ticosax
mlsen
thedrow
hzy
revolunet
slafs
smcoll
lambdalisue
giginet
quasiyoke
philippeowagner
oskarjakiela
yoyonamite
Simanas
AmbientLighter
SalahAdDin
artscoop
more...
maraujop
jjmaestro
chrisglass
jezdez
jlward
bartTC
bocribbz
winhamwr
gthb
safwanrahman
remik
diegobz
jpic
more...
filipeximenes
reduxionist
victorgutemberg
fjsj
aarcro
drxos
myonov
huogerac
sdee
dbkaplan
AlexandreCollet
GerardPaligot
abeniwal
marctc
vovanbo
artragis
justquick
jazzido
bhuztez
nabucosoundchrisglass
maraujop
jjmaestro
stefanfoulis
nigma
juandecarrion
mitchellrj
DanLipsitt
amites
DarrenRiedlinger
more...
thinkingpotato
adi-
neuman
lightstrike
mhall119rascafhahnRamezIssaceduardo-matosdiefenbach
bport
specialunderwear
PetrDlouhy
thomasyip
Core2Duo
suhailvs
paltmantyrionkreneskyp
bramwelt
MostAwesomeDude
JonahBrooks
Kennric
bsu
chancez
edunham
garrypolleypjdelportfabiomichelinicenkbircanoglustaabphuihockpterklefterisnik
Documentation N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Object-level  ✅ ✅

django-trusts always works as an annexation; all features require *no* patched class of any sort, works with all existing builtin auth features: authorization, permission, group, contenttypes; option to use junction table mechanism: no moditication to any existing model.
Django 1.2 backend
Decorator  Works as class/method/functional decorator.  This package operates on view level. 

Implemented: @permission_required('app.read_project', fieldlookups_kwargs={'pk': 'project_id'})
  django.contrib.auth.decorators.permission_required
Logical checks  each model have PermissionHandler for them and has_perm method will be called for paricular model. 

via lambda registered with model (i.e., Content.register_permission_condition(Receipt, 'own', lambda u, p, o: u == o.user))

@permission_required('app.change_receipt:own', fieldlookups_kwargs={'pk': 'pk'})

No, though it's extensible enough to add that easily.
Database  registry of callables  it use 'Logic' based permission system which is completely different from general permission system. 

implementation optimized to reduce db hits per http request
Declaration  registry of callables  registration. Each model can be registered with Handler for them , permission classes  permissions are defined by role. , registration  as a method in the same model  Permissions are declared for views. 

via django's permission model: app.change_xyz, app.add_xyz, app.delete_xyz or any custom permissions
 , registration dynamically creates permission models 
permissions are view and function level permissions
 , global permissions in settings and model permission as canonical authYes, by creating a role-agent-entity entry, combined with checking optional model relations.
Assignmentmanager + patched User and Group + shortcut function
+ Admin Integration (with ModelAdmin extension)
irrelevantAdd builtin PermissionLogic subclass or your own PermissionLogic subclass to the target model class.permission classes instances + admin (action) + custom views , utils functionspatched User and GroupmanagerIn the same model as a method which takes the User as argument and returns True or FalsePermissions are not assigned to models.utils functions 

via Models or Django Admin UI
(upcoming: REST api via tastypie)
utils functionspatched User and Group or util functionsuse the provided add_permission backend

from django_generic_permissions.backends import add_permission

add_permission('foo', logged_in_user)
 , complete API and GUIBy creating a Permission record, mapping actions to roles, and defining permission inheritance via relations.
Templatetag  You can use like {% if user has 'auth.change_user' of object %}
  not needed as it is integrated with django.contrib.auth permissions 

supports django's builtins
 , limited functionality
Inheritanceirrelevant  for PermissionLogic class 

Can be achieve with two methods:
a) by register the model with field lookup path from another permissible model (i.e., Content.register_content(ReceiptImage, '%s__image' % Content.get_content_fieldlookup('app.Receipt')), or
b) by sharing the same `trust` between depended / dependent objects
 , from parent container
Rolesirrelevant  if you add a PermissionLogic class like http://bit.ly/1z22IGl 

Role is specified in model's meta and management commands updates db entires and makes it available for permission check
 , assimilated by groups
Field level , define it in a object level checker.Objects are assigned to request and they can be compared to other values by attributes or methods.?
Cascade updateirrelevant  Can beDepends on implementation. 

supports updating of multiple object permissions via `trust` and multiple users via django's `auth.models.Group`
Any-to-any  Can be 

Same mechanism as Inheritance
Model-level , integration , own  integrated with django.contrib.auth permissions 

design to be used alongside with Django's builtin auth ModelBackend
 , own  this works independent of Django models intentionally , own and integrated
Search WeightPackageDescriptionLast PyPI release:Repo ForksStars
{{ item.weight / max_weight * 100 | number:0 }}%{{ item.title }}Grid: {{ item.description }} {{ item.last_released | date: 'mediumDate' }} N/A {{ item.repo_forks }} N/A {{ item.repo_watchers }} N/A