From e042c5275b06ade7ff51fb02c791243dd3e5a5e2 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 29 Apr 2019 15:17:42 -0400 Subject: [PATCH] Stop inherited permission recursion check Recursive objects are not supported by this method and need to specify their own function to calculate their own filtered queryset. Signed-off-by: Roberto Rosario --- mayan/apps/acls/managers.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mayan/apps/acls/managers.py b/mayan/apps/acls/managers.py index 092624094e..6e3c15b372 100644 --- a/mayan/apps/acls/managers.py +++ b/mayan/apps/acls/managers.py @@ -240,9 +240,13 @@ class AccessControlListManager(models.Manager): except self.model.DoesNotExist: pass - queryset = queryset | self._get_inherited_object_permissions( - obj=parent_object, role=role - ) + if type(parent_object) == type(obj): + # Object and parent are of the same type. Break recursion + return queryset + else: + queryset = queryset | self._get_inherited_object_permissions( + obj=parent_object, role=role + ) return queryset