- commit
- 2a6e5e5b9b319b23da65d3fd6837faebf385b463
- parent
- 3eef57488bf5de9ac1009ec5e92b3f0883fcddae
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2018-10-27 06:48
define BaseBackend
Diffstat
| M | utils/context_groups.py | 38 | +++++++++++++++++++++++--------------- |
1 files changed, 23 insertions, 15 deletions
diff --git a/utils/context_groups.py b/utils/context_groups.py
@@ -31,13 +31,32 @@ class ContextGroup(models.Model): 31 31 return perm in self.get_permissions() 32 32 33 3334 -1 class BasicObjectBackend:35 -1 # See https://code.djangoproject.com/ticket/2021836 -1-1 34 class BaseBackend: 37 35 def authenticate(self, username, password): 38 36 return None 39 37 40 38 def get_user_permissions(self, user, obj=None): -1 39 return set() -1 40 -1 41 def get_group_permissions(self, user, obj=None): -1 42 return set() -1 43 -1 44 def get_all_permissions(self, user, obj=None): -1 45 perms = set() -1 46 perms.update(self.get_user_permissions(user, obj=obj)) -1 47 perms.update(self.get_group_permissions(user, obj=obj)) -1 48 return perms -1 49 -1 50 def has_perm(self, user, perm, obj=None): -1 51 # you may want to override this for performance reasons -1 52 perms = self.get_all_permissions(user, obj=obj) -1 53 return perm in perms -1 54 -1 55 -1 56 class BasicObjectBackend(BaseBackend): -1 57 # See https://code.djangoproject.com/ticket/20218 -1 58 -1 59 def get_user_permissions(self, user, obj=None): 41 60 if obj is None: 42 61 return set() 43 62 return user.get_user_permissions() @@ -58,10 +77,7 @@ class BasicObjectBackend: 58 77 return user.has_perm(perm) 59 78 60 7961 -1 class ContextPermissionBackend:62 -1 def authenticate(self, username, password):63 -1 return None64 -1-1 80 class ContextPermissionBackend(BaseBackend): 65 81 def get_group_permissions(self, user, obj=None): 66 82 perms = set() 67 83 if user.is_active and isinstance(obj, Context): @@ -70,14 +86,6 @@ class ContextPermissionBackend: 70 86 perms.update(group.get_permissions()) 71 87 return perms 72 8873 -1 def get_all_permissions(self, user, obj=None):74 -1 return self.get_group_permissions(user, obj)75 -176 -1 def has_perm(self, user, perm, obj=None):77 -1 if user.is_active and isinstance(obj, Context):78 -1 groups = ContextGroup.objects.filter(context=obj, users=user)79 -1 return any(group.has_perm(perm) for group in groups)80 -181 89 82 90 class PermissionRequiredMixin(auth_mixins.PermissionRequiredMixin): 83 91 def get_permission_object(self):