zoukankan      html  css  js  c++  java
  • 权限组件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
    
  • 相关阅读:
    关于 <customErrors> 标记的“mode”属性设置为“Off”的问题的解决方案
    ASP.NET MVC的帮助类HtmlHelper和UrlHelper
    js判断手机浏览器操作系统和微信浏览器的方法
    javascript倒计时代码及倒计时弹窗
    修改UISearchBar背景色
    dispatch_group_async
    Block 代替for循环
    GCD 延时操作
    GCD 倒计时
    创建UIButton
  • 原文地址:https://www.cnblogs.com/SkyOceanchen/p/11923002.html
Copyright © 2011-2022 走看看