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

时间:2016-08-11 10:42:40

标签: django django-rest-framework django-mongodb-engine

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

1 个答案:

答案 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,)