我正在使用Django和Rest框架以及mongoengine构建一个Restapi,到目前为止,所有请求都要求用户进行身份验证并检查令牌。
但现在我需要对不同的用户允许不同的操作。我不知道从哪里开始。任何指导方针?
例如,我只希望管理员能够编写和读取用户对象:
class UsersViewSet(ModelViewSet):
queryset = Users.objects.all()
serializer_class = UsersSerializer
def me(self, request, *args, **kwargs):
serializer = self.serializer_class(request.user)
return Response(serializer.data)
答案 0 :(得分:3)
阅读custom permisssion一章。您需要扩展permissions.BasePermission
并在has_permission
内提供身份验证逻辑。
from rest_framework import permissions
class CustomUserPermission(permissions.BasePermission):
def has_permission(self, request, view):
# return True if user has permission
pass
然后在你的视野内。
class UsersViewSet(ModelViewSet):
permission_classes = (CustomUserPermission,)