From 739b96ed3745ef12c22637f178e9f1e233ff7140 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 29 Mar 2016 16:27:53 -0400 Subject: [PATCH] Add related object link permission support. --- mayan/apps/acls/managers.py | 1 + mayan/apps/navigation/classes.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mayan/apps/acls/managers.py b/mayan/apps/acls/managers.py index fb6c4f822c..ef66326d31 100644 --- a/mayan/apps/acls/managers.py +++ b/mayan/apps/acls/managers.py @@ -55,6 +55,7 @@ class AccessControlListManager(models.Manager): permission.stored_permission for permission in permissions ] except TypeError: + # Not a list of permissions, just one stored_permissions = [permissions.stored_permission] if related: diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index 6a32c07466..2151585b08 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -202,7 +202,7 @@ class Link(object): def __init__(self, text, view, args=None, condition=None, conditional_disable=None, description=None, icon=None, keep_query=False, kwargs=None, permissions=None, - remove_from_query=None, tags=None): + permissions_related=None, remove_from_query=None, tags=None): self.args = args or [] self.condition = condition @@ -245,7 +245,8 @@ class Link(object): if resolved_object: try: AccessControlList.objects.check_access( - self.permissions, request.user, resolved_object + self.permissions, request.user, resolved_object, + related=getattr(self, 'permissions_related', None) ) except PermissionDenied: return None