如何在 Django Rest 框架 mongoengine 中管理角色和权限

How to manage roles and permission in Django Rest framework mongoengine

我正在使用 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)

阅读关于 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,)