Created
March 31, 2010 13:43
-
-
Save davidbgk/350322 to your computer and use it in GitHub Desktop.
A granular permissions' backend for Django
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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