Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidbgk/350322 to your computer and use it in GitHub Desktop.
Save davidbgk/350322 to your computer and use it in GitHub Desktop.
A granular permissions' backend for Django
# A granular permissions' backend for Django
try:
set
except NameError:
from sets import Set as set # Python 2.3 fallback
from django.contrib.auth.backends import ModelBackend
class PermissionsBackend(ModelBackend):
"""
Checks granular permissions.
"""
supports_object_permissions = True
def get_group_permissions(self, user_obj, instance=None):
"""
Returns a set of permission strings that this user has through his/her
groups.
"""
if instance is not None:
# TODO
return set()
else:
return super(PermissionsBackend, self).get_group_permissions(user_obj)
def get_all_permissions(self, user_obj, instance=None):
if instance is not None:
# TODO
return set()
else:
return super(PermissionsBackend, self).get_all_permissions(user_obj)
def has_perm(self, user_obj, perm, instance=None):
return perm in self.get_all_permissions(user_obj, instance)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment