Я реализовал BasePermission
класс в проекте, но когда я собираюсь получить зарегистрированного пользователя с его токеном, он говорит: You don't have a permission to perform this action
permissions.py
class IsLoggedInOrAdmin(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
return obj.user == request.user or request.user.is_staff
class IsAdminUser(permissions.BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_staff
def has_object_permission(self, request, view, obj):
return request.user and request.user.is_staff
и мой файл просмотров выглядит так
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def get_permissions(self):
permission_classes = []
if self.action == 'create':
permission_classes = [AllowAny]
elif self.action == 'retrieve' or self.action == 'update' or self.action == 'partial_update':
permission_classes = [IsLoggedInOrAdmin]
elif self.action == 'destroy' or self.action == 'list':
permission_classes = [IsAdminUser]
return [permission() for permission in permission_classes]
вот что я сделал до сих пор. Я создал простого пользователя и взял токен. Если я отправляю запрос GET в Почтальоне, я получаю ошибку детализации, но она отлично работает с токеном суперпользователя, но не владельцем. Где я делаю ошибку? Любая помощь, пожалуйста? Заранее спасибо!