Как проверить, присутствует ли вошедший пользователь в группах в представлениях на основе классов (viewsets.ModelViewSet)?
У меня есть представление на основе классов
class JobViewSet(viewsets.ModelViewSet):
queryset = Job.objects.all()
serializer_class = JobSerializer
permission_classes = (IsAuthenticated,)
У меня есть 2 группы пользователей (реализованные с помощью django.contrib.auth.models Group), 'company' и 'customer'. В каждом представлении мне нужно проверить, принадлежит ли пользователь к определенной группе. Возможно ли это сделать с помощью пользовательских permission_classes.
Спасибо.
Да, можете. Вы можете увидеть это здесь. Что-то вроде :
class IsCompany(permissions.BasePermission):
"""
Check if user is in company group
"""
def has_permission(self, request, view):
user = request.user
is_company = user.groups.filter(name='company')
return is_company