Класс множественных разрешений Django REST не работает
У меня есть два класса разрешений. IsAuthorGroup будет проверять, принадлежит ли пользователь к группе авторов, а IsOwnerOrReadOnly ограничит пользователя в выполнении post
и delete
, если он не является владельцем объекта.
Но проблема в том, что любой человек из IsAuthorGroup, выполняющий post
и delete
запрос события, не является владельцем объекта.
Как запретить кому-либо из IsAuthorGroup выполнять post
и delete
запросы, если он не является владельцем объекта?
вот мой код:
class IsAuthorGroup(permissions.BasePermission):
def has_permission(self, request, view):
if request.user and request.user.groups.filter(name='AuthorGroup'):
return True
return False
class IsOwnerOrReadOnly(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
# Write permissions are only allowed to the owner of the blog.
return obj.author == request.user or request.user.is_superuser
class BlogViewSet(viewsets.ModelViewSet):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
pagination_class = BlogPagination
lookup_field = 'blog_slug'
permission_classes = [IsOwnerOrReadOnly & IsAuthorGroup]