Simplify and remove unused code
This commit is contained in:
@@ -41,8 +41,8 @@ class Permission(object):
|
||||
_permissions = {}
|
||||
|
||||
@classmethod
|
||||
def check_permissions(cls, requester, permission_list):
|
||||
for permission in permission_list:
|
||||
def check_permissions(cls, requester, permissions):
|
||||
for permission in permissions:
|
||||
if permission.requester_has_this(requester):
|
||||
return True
|
||||
|
||||
@@ -98,5 +98,4 @@ class Permission(object):
|
||||
return stored_permission
|
||||
|
||||
def requester_has_this(self, requester):
|
||||
stored_permission = self.stored_permission
|
||||
return stored_permission.requester_has_this(requester)
|
||||
return self.stored_permission.requester_has_this(requester)
|
||||
|
||||
@@ -40,22 +40,16 @@ class StoredPermission(models.Model):
|
||||
def __str__(self):
|
||||
return unicode(getattr(self, 'volatile_permission', self.name))
|
||||
|
||||
def get_holders(self):
|
||||
result = []
|
||||
for role in self.roles.all():
|
||||
for user in role.group.user_set.all():
|
||||
result.append(user)
|
||||
|
||||
return result
|
||||
|
||||
def requester_has_this(self, user):
|
||||
logger.debug('user: %s', user)
|
||||
if user.is_superuser or user.is_staff:
|
||||
return True
|
||||
|
||||
# Request is one of the permission's holders?
|
||||
if user in self.get_holders():
|
||||
return True
|
||||
for group in user.groups.all():
|
||||
for role in group.roles.all():
|
||||
if self in role.permissions.all():
|
||||
return True
|
||||
|
||||
logger.debug('Fallthru')
|
||||
return False
|
||||
|
||||
@@ -78,10 +78,6 @@ class SetupRoleMembersView(AssignRemoveView):
|
||||
class SetupRolePermissionsView(AssignRemoveView):
|
||||
grouped = True
|
||||
|
||||
@staticmethod
|
||||
def as_choice_list(items):
|
||||
return sorted([(item.pk, item) for item in items], key=lambda x: x[1])
|
||||
|
||||
def add(self, item):
|
||||
permission = get_object_or_404(StoredPermission, pk=item)
|
||||
self.role.permissions.add(permission)
|
||||
|
||||
Reference in New Issue
Block a user