diff --git a/src/Products/PlonePAS/plugins/local_role.py b/src/Products/PlonePAS/plugins/local_role.py index 93e76b5d..68822fb8 100644 --- a/src/Products/PlonePAS/plugins/local_role.py +++ b/src/Products/PlonePAS/plugins/local_role.py @@ -78,7 +78,8 @@ def getRolesInContext(self, user, object): object = parent continue - new = getattr(object, 'im_self', None) + new = (getattr(object, 'im_self', None) or + getattr(object, '__self__', None)) if new is not None: object = aq_inner(new) @@ -134,7 +135,8 @@ def checkLocalRolesAllowed(self, user, object, object_roles): inner_obj = parent continue - new = getattr(inner_obj, 'im_self', None) + new = (getattr(inner_obj, 'im_self', None) or + getattr(inner_obj, '__self__', None)) if new is not None: inner_obj = aq_inner(new) @@ -175,7 +177,8 @@ def getAllLocalRolesInContext(self, context): object = parent continue - new = getattr(object, 'im_self', None) + new = (getattr(object, 'im_self', None) or + getattr(object, '__self__', None)) if new is not None: object = aq_inner(new)