1

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

1 回答 1

3

阅读关于自定义权限的章节。您将希望在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,)
于 2016-08-11T13:12:37.857 回答