• 权限组件permission


    权限组件

    permission

    """
    系统:
    1)AllowAny:允许所有用户,校验方法直接返回True
    2)IsAuthenticated:只允许登录用户
        必须request.user和request.user.is_authenticated都通过
    3)IsAuthenticatedOrReadOnly:游客只读,登录用户无限制
        get、option、head 请求无限制
        前台请求必须校验 request.user和request.user.is_authenticated
    4)IsAdminUser:是否是后台用户
        校验 request.user和request.user.is_staff    is_staff(可以登录后台管理系统的用户)
        
    
    自定义:基于auth的Group与Permission表
    1)自定义权限类,继承BasePermission,重写has_permission
    2)has_permission中完成
        拿到登录用户 user <= request.user
        校验user的分组或是权限
        前两步操作失败 返回False => 无权限
        前两步操作成功 返回True => 有权限
    """
    

    自定义权限类:为 管理员 分组成员

    from rest_framework.permissions import BasePermission
    
    class AdminPermission(BasePermission):
        # 继承BasePermission,重写has_permission
        def has_permission(self, request, view):
            # 有权限,返回True
            # 无权限,返回False
            user = request.user
            if not user:
                return False
            # 用户是 管理员 分组 (管理员分组是Group表中的一条自定义记录)
            if not user.groups.filter(name='管理员'):
                return False
            # 登录的用户必须是自定义管理员分组成员
            return True
    
  • 相关阅读:
    Python – GitHub CentOS
    Python – GitHub Ubuntu
    学习jQuery Treeview一天的感受
    让我郁闷了一个下午的list为null
    在徘徊中前进的一天
    都是被逼的,被逼的
    和技术无关,生活中的一点感受
    我又错了
    忽然的感受
    学习jQuery的一天
  • 原文地址:https://www.cnblogs.com/SkyOceanchen/p/11923002.html
Copyright © 2020-2023  润新知