diff --git a/djangoldp/permissions.py b/djangoldp/permissions.py index 72e5cfb22cf8e54eacc264702be3a7947bfc9860..f3c63c3c13028c23b6ffdb2c954797352f2bd85c 100644 --- a/djangoldp/permissions.py +++ b/djangoldp/permissions.py @@ -80,10 +80,10 @@ class InboxPermissions(WACPermissions): return super().has_object_permission(request, view, obj) def user_permissions(self, user, obj): - if user.is_anonymous: + if user.is_anonymous(): return self.anonymous_perms else: - if Model.get_meta(obj, 'auto_author') == user: + if hasattr(obj._meta, 'auto_author') and getattr(obj, Model.get_meta(obj, 'auto_author')) == user: return self.author_perms else: return self.authenticated_perms @@ -114,18 +114,15 @@ class AnonymousReadOnly(WACPermissions): elif view.action in ["list", "retrieve"]: return True elif view.action in ['update', 'partial_update', 'destroy']: - if hasattr(obj._meta, 'auto_author'): - author = getattr(obj, obj._meta.auto_author) - if author == request.user: - return True - else: - return super().has_object_permission(request, view, obj) + if hasattr(obj._meta, 'auto_author') and getattr(obj, Model.get_meta(obj, 'auto_author')) == request.user: + return True + return super().has_object_permission(request, view, obj) def user_permissions(self, user, obj): - if user.is_anonymous: + if user.is_anonymous(): return self.anonymous_perms else: - if Model.get_meta(obj, 'auto_author') == user: + if hasattr(obj._meta, 'auto_author') and getattr(obj, Model.get_meta(obj, 'auto_author')) == user: return self.author_perms else: return self.authenticated_perms @@ -153,7 +150,7 @@ class LoggedReadOnly(WACPermissions): return super().has_object_permission(request, view, obj) def user_permissions(self, user, obj): - if user.is_anonymous: + if user.is_anonymous(): return self.anonymous_perms else: return self.authenticated_perms