From 0a1c4714e3f06d61d76496c7362cd08ea50845ed Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier <contact@jbpasquier.eu> Date: Wed, 14 Aug 2019 23:41:37 +0200 Subject: [PATCH] fix: filter to instance --- djangoldp/permissions.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/djangoldp/permissions.py b/djangoldp/permissions.py index 29858650..e22e39b7 100644 --- a/djangoldp/permissions.py +++ b/djangoldp/permissions.py @@ -1,5 +1,6 @@ from rest_framework.permissions import BasePermission from django.core.exceptions import PermissionDenied +from django.db.models.base import ModelBase class LDPPermissions(BasePermission): @@ -42,9 +43,15 @@ class LDPPermissions(BasePermission): else: return authenticated_perms - def filter_user_perms(self, user, model, permissions): + def filter_user_perms(self, user, obj_or_model, permissions): # Only used on Model.get_permissions to translate permissions to LDP - return [perm for perm in permissions if perm in self.user_permissions(user, model)] + if isinstance(obj_or_model, ModelBase): + model = obj_or_model + obj = None + else: + obj = obj_or_model + model = obj_or_model.__class__ + return [perm for perm in permissions if perm in self.user_permissions(user, model, obj)] perms_map = { -- GitLab