Rest-Framework之权限组件

2019-03-08  本文已影响0人  火鸡不肥

所谓的权限就是只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制。

一、局部使用

from rest_framework.permissions import BasePermission
class UserPermission(BasePermission):
    message = '不是超级用户,查看不了'
    def has_permission(self, request, view):
        user_type = request.user.user_type
        print(user_type)
        if user_type == 1:
            return True
        else:
            return False

class Course(APIView):
    authentication_classes = [TokenAuth, ]
    permission_classes = [UserPermission,]

    def get(self, request):
        return HttpResponse('get')

    def post(self, request):
        return HttpResponse('post')

局部使用只需要在视图类里加入:

permission_classes = [UserPermission,]

二、全局使用

REST_FRAMEWORK={
    "DEFAULT_AUTHENTICATION_CLASSES":["app01.service.auth.Authentication",],
    "DEFAULT_PERMISSION_CLASSES":["app01.service.permissions.SVIPPermission",]
}

总结

权限类使用顺序:先用视图类中的权限类,再用settings里配置的权限类,最后用默认的权限类

上一篇下一篇

猜你喜欢

热点阅读