From 38d7b7cda36137a9e5b6f86dbb9b9afd3ce81004 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 13 Jan 2019 22:59:59 -0400 Subject: [PATCH] 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 --- mayan/apps/permissions/classes.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mayan/apps/permissions/classes.py b/mayan/apps/permissions/classes.py index 96220276f7..d974745bb2 100644 --- a/mayan/apps/permissions/classes.py +++ b/mayan/apps/permissions/classes.py @@ -72,15 +72,16 @@ class Permission(object): cls._permissions.values(), key=lambda x: x.namespace.name ) + # Deprecated method @classmethod - def check_permissions(cls, requester, permissions): + def check_permissions(cls, permissions, requester): try: for permission in permissions: - if permission.stored_permission.requester_has_this(requester): + if permission.stored_permission.user_has_this(user=requester): return True except TypeError: # 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 logger.debug( @@ -88,6 +89,13 @@ class Permission(object): ) 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 def get(cls, pk, proxy_only=False): if proxy_only: