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 <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-29 15:17:42 -04:00
parent b4227a608b
commit e042c5275b

View File

@@ -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