diff --git a/apps/permission/backends.py b/apps/permission/backends.py index e61b07191227d755f52ebe6953a0897029f980fe..62b0c09f186d901507931457694229ac1d5b4e38 100644 --- a/apps/permission/backends.py +++ b/apps/permission/backends.py @@ -89,6 +89,7 @@ class PermissionBackend(ModelBackend): query = query | perm.query return query + @staticmethod def has_perm(self, user_obj, perm, obj=None): if user_obj is None or isinstance(user_obj, AnonymousUser): return False diff --git a/apps/permission/permissions.py b/apps/permission/permissions.py index d9816a63ad0d3bad0dc13ca3e5af8449fbc32f62..9fb36f35758568de1c2fe130a7f01b66933797c0 100644 --- a/apps/permission/permissions.py +++ b/apps/permission/permissions.py @@ -41,8 +41,8 @@ class StrongDjangoObjectPermissions(DjangoObjectPermissions): user = request.user perms = self.get_required_object_permissions(request.method, model_cls) - - if not user.has_perms(perms, obj): + # if not user.has_perms(perms, obj): + if not all(PermissionBackend.has_perm(user, perm, obj) for perm in perms): # If the user does not have permissions we need to determine if # they have read permissions to see 403, or not, and simply see # a 404 response.