diff --git a/djangoldp/permissions.py b/djangoldp/permissions.py index 56c3fa3fe6504f78b4b09d1a2810f6add41fee6b..7b5c1345a60808f019aac5c518c57eb4029e7a40 100644 --- a/djangoldp/permissions.py +++ b/djangoldp/permissions.py @@ -1,6 +1,6 @@ -from rest_framework import permissions -from rest_framework import filters from guardian.shortcuts import get_objects_for_user +from rest_framework import filters +from rest_framework import permissions """ Liste des actions passées dans views selon le protocole REST : @@ -16,6 +16,7 @@ Pour chacune de ces actions, on va définir si on accepte la requête (True) ou checks have already passed """ + class WACPermissions(permissions.DjangoObjectPermissions): perms_map = { 'GET': ['%(app_label)s.view_%(model_name)s'], @@ -50,6 +51,7 @@ class ObjectFilter(filters.BaseFilterBackend): objects = get_objects_for_user(request.user, perm, klass=queryset) return objects + class ObjectPermission(WACPermissions): filter_class = ObjectFilter @@ -60,7 +62,7 @@ class InboxPermissions(WACPermissions): Author can edit """ anonymous_perms = ['view', 'create'] - authenticated_perms = ['view','create'] + authenticated_perms = ['view', 'create'] author_perms = ['view'] def has_permission(self, request, view): @@ -84,6 +86,7 @@ class InboxPermissions(WACPermissions): else: return self.authenticated_perms + class AnonymousReadOnly(WACPermissions): """ Anonymous users: can read all posts @@ -92,7 +95,7 @@ class AnonymousReadOnly(WACPermissions): """ anonymous_perms = ['view'] - authenticated_perms = ['view','add'] + authenticated_perms = ['view', 'add'] author_perms = ['view', 'add', 'change', 'control', 'delete'] def has_permission(self, request, view): @@ -123,4 +126,4 @@ class AnonymousReadOnly(WACPermissions): if hasattr(obj._meta, 'auto_author') and getattr(obj, obj._meta.auto_author) == request.user: return self.author_perms else: - return self.authenticated_perms \ No newline at end of file + return self.authenticated_perms diff --git a/djangoldp/tests/tests_user_permissions.py b/djangoldp/tests/tests_user_permissions.py index 9f510926f6146eb85dc3934df149cd1308f33988..5bda0e5880cc96337b74e0344cf8f3f087e882d8 100644 --- a/djangoldp/tests/tests_user_permissions.py +++ b/djangoldp/tests/tests_user_permissions.py @@ -7,6 +7,7 @@ from djangoldp.views import LDPViewSet import json + class TestUserPermissions(APITestCase): def setUp(self):