diff --git a/src/homework/permissions.py b/src/homework/permissions.py
index 762faedb33fa88dc0dbe620325847a39bd1809ce..7fab2c9d41a927e34b924fd725a531b90ebbc08d 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 2d0344bd9b35109ba97288633535d3bfa4c0921e..005d45349a77e4b97de29a4b90ed736430a9f4c2 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)