Как предоставить доступ определенным пользователям для просмотра определенных API в django rest framework
У меня есть три API, созданных путем наследования класса APIView
class API1View(APIView):
def get(self, request):
return Response("API 1 view")
class API2View(APIView):
def get(self, request):
return Response("API 2 view")
class API3View(APIView):
def get(self, request):
return Response("API 3 view")
У меня три пользователя
- user1
- user2
- user3
Я три вида пользователей.
- клиент
- менеджер
- сотрудник
Различные типы пользователей должны иметь доступ к различным API
- Менеджер может просматривать только API1 и API2 .
- Клиент может просматривать только API1 .
- Сотрудник может просматривать только API3 .
В будущем мне нужно иметь возможность отозвать доступ определенного пользователя к определенному API.
Хорошо ли использовать Django Groups или есть лучшие способы сделать это? Или есть ли какой-нибудь DRF способ сделать это? (Я видел разрешения DRF, но не уверен, что они подойдут для этого сценария)
Вы можете создавать свои пользовательские разрешения и использовать их в своих API:
from rest_framework.permissions import BasePermission
class CustomerPermission(BasePermission):
message = 'You Don\'t Have Access To Customer APIs'
def has_permission(self, request, view):
return bool(request.user.is_customer)
Использование:
class API3View(APIView):
permission_classes = [CustomerPermission]
def get(self, request):
return Response("API 3 view")
.
permission_classes
получает несколько разрешений, но работает какand
если вы хотите установить доступ к API для нескольких пользователей, вам вы должны написать пользовательское разрешение для этого тоже