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