From c958fa90801a05e1ac8532030d9ea2b9155923ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bmate711@gmail.com>
Date: Thu, 25 Jan 2018 18:15:23 +0100
Subject: [PATCH] update homework permissions and views

---
 src/homework/permissions.py | 13 ++++++++-----
 src/homework/views.py       |  4 ++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/homework/permissions.py b/src/homework/permissions.py
index 762faed..7fab2c9 100644
--- a/src/homework/permissions.py
+++ b/src/homework/permissions.py
@@ -29,9 +29,12 @@ class IsAuthenticatedOrReadOnly(BasePermission):
 
 
 class IsStaffOrReadOnlyForAuthenticated(BasePermission):
-
-    def has_object_permission(self, request, view, obj):
-        return (request.user.is_staff or
-                request.method in SAFE_METHODS and
-                request.user.is_authenticated
+    """
+    The request is authenticated as a staff, or is a read-only request for authenticated.
+    """
+    def has_permission(self, request, view):
+        return (
+            request.user.is_staff or
+            request.method in SAFE_METHODS and
+            request.user.is_authenticated
         )
diff --git a/src/homework/views.py b/src/homework/views.py
index 2d0344b..005d453 100644
--- a/src/homework/views.py
+++ b/src/homework/views.py
@@ -11,13 +11,13 @@ from rest_framework import status
 class TasksViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.TaskSerializer
     queryset = models.Task.objects.all()
-    permission_classes = (permissions.IsStaffOrReadOnly, )
+    permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, )
 
 
 class SolutionViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.SolutionSerializer
     queryset = models.Solution.objects.all()
-    permission_classes = (permissions.SolutionPermission, )
+    permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, )
 
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.data)
-- 
GitLab