Add check_permissions replacement

Add a new class method named check_user_permission.
This method is smaller as it only accepts a single permission
instead of a single or a list of permission like check_permissions
does. check_user_permission is meant to replace check_permissions.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-01-13 22:59:59 -04:00
parent 9d8c8f4833
commit 38d7b7cda3

View File

@@ -72,15 +72,16 @@ class Permission(object):
cls._permissions.values(), key=lambda x: x.namespace.name cls._permissions.values(), key=lambda x: x.namespace.name
) )
# Deprecated method
@classmethod @classmethod
def check_permissions(cls, requester, permissions): def check_permissions(cls, permissions, requester):
try: try:
for permission in permissions: for permission in permissions:
if permission.stored_permission.requester_has_this(requester): if permission.stored_permission.user_has_this(user=requester):
return True return True
except TypeError: except TypeError:
# Not a list of permissions, just one # Not a list of permissions, just one
if permissions.stored_permission.requester_has_this(requester): if permissions.stored_permission.user_has_this(user=requester):
return True return True
logger.debug( logger.debug(
@@ -88,6 +89,13 @@ class Permission(object):
) )
raise PermissionDenied(_('Insufficient permissions.')) raise PermissionDenied(_('Insufficient permissions.'))
@classmethod
def check_user_permission(cls, permission, user):
if permission.stored_permission.user_has_this(user=user):
return True
raise PermissionDenied(_('Insufficient permissions.'))
@classmethod @classmethod
def get(cls, pk, proxy_only=False): def get(cls, pk, proxy_only=False):
if proxy_only: if proxy_only: