diff --git a/mayan/apps/rest_api/filters.py b/mayan/apps/rest_api/filters.py index e390fb8bb5..76dc855eda 100644 --- a/mayan/apps/rest_api/filters.py +++ b/mayan/apps/rest_api/filters.py @@ -10,16 +10,16 @@ from permissions import Permission class MayanObjectPermissionsFilter(BaseFilterBackend): def filter_queryset(self, request, queryset, view): - required_permission = getattr( + required_permissions = getattr( view, 'mayan_object_permissions', {} ).get(request.method, None) - if required_permission: + if required_permissions: try: - Permission.check_permissions(request.user, required_permission) + Permission.check_permissions(request.user, required_permissions) except PermissionDenied: return AccessControlList.objects.filter_by_access( - required_permission[0], request.user, queryset + required_permissions[0], request.user, queryset ) else: return queryset diff --git a/mayan/apps/rest_api/permissions.py b/mayan/apps/rest_api/permissions.py index 206b16ef04..82167ddfc4 100644 --- a/mayan/apps/rest_api/permissions.py +++ b/mayan/apps/rest_api/permissions.py @@ -1,6 +1,4 @@ -from __future__ import absolute_import - -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.core.exceptions import PermissionDenied @@ -27,24 +25,24 @@ class MayanPermission(BasePermission): return True def has_object_permission(self, request, view, obj): - required_permission = getattr( + required_permissions = getattr( view, 'mayan_object_permissions', {} ).get(request.method, None) - if required_permission: + if required_permissions: try: - Permission.check_permissions(request.user, required_permission) + Permission.check_permissions(request.user, required_permissions) except PermissionDenied: try: if hasattr(view, 'mayan_permission_attribute_check'): AccessControlList.objects.check_access( - permissions=required_permission, + permissions=required_permissions, user=request.user, obj=obj, related=view.mayan_permission_attribute_check ) else: AccessControlList.objects.check_access( - required_permission, request.user, obj + required_permissions, request.user, obj ) except PermissionDenied: return False