rest_framework 权限功能
权限:问题:不用视图不用权限可以访问基本使用写上一个权限类 创建utils 中 permission.py文件class SvipPermisson(object):message = "必须是SVIP用户,否则无权访问" #页面无权时报错提示def has_permission(self, request, view):if request.user.user_type != 3:return Falsereturn Trueclass OrderView(APIView):""" 订单相关业务 (只有SVIP用户有权限)""" #authentication_classes = [FirstAuthtication, Authtication]permission_classes = [MyPermission, ]def get(self, request, *args, **kwargs):self.dispatchret = {'code':1000, "msg":None, 'data':None }try:ret['data'] = ORDER_DICTexcept Exception as e:passreturn JsonResponse(ret)self.check_permissons(request)#返回权限的对象列表 或者说 [权限类的对象] for permission in self.get_permissions():if not permission.has_permisstion(requst, self): #如果ha_permisstion返回True 就不执行该函数 就可以通过权限认证self.permission_denied(request, message = getattr(permission, 'message', None)) 可以在全局配置 也可以自己定制REST_FRAMEWORK = {#全局使用的认证类#认证"DEFAULT_AUTHENTICATION_CLASSES":['api.utils.auth.FirstAuthtication',]"UNAUTHENTICATED_USER":None #匿名用户 request.user = None#权限"DEFAULT_PERMISSION_CLASSES":['api.utils.permission.SvipPermisson'] }如果要自定义 可以在class UserInfoVIew(APIView):""" 订单相关业务(普通用户)""" permission_classes = [PublicPermission,] #写完这样 就不会读全局的权限访问 也可以为空 如permission_classes= []源码流程:dispatchinitialpermission内置的权限 from rest_framework.permissions import BasePermission class SVIPPermission(BasePermission): #按规范 需要继承BasePermissionmessage = "必须是SVIP才能访问"def has_permission(self, request, view):if request.user.user_type != 3:return Falsereturn True梳理:1.使用-类: 继承 BasePermission 必须实现 has_permission方法from rest_framework.permissions import BasePermissionclass SVIPPermission(BasePermission): #按规范 需要继承BasePermissionmessage = "必须是SVIP才能访问"def has_permission(self, request, view):if request.user.user_type != 3:return Falsereturn True-返回值:True #有权访问False #无权访问抛出异常 一般不做异常抛出异常message = "SVIP"局部:permission_classes = [Mypermission]全局:REST_FRAMEWORK = {"EDEFAULT_PERMISSION_CLASSES" :['api.utils.perimission.MyPermission']}2.源码流程
转载于:https://www.cnblogs.com/Liang-jc/p/9314059.html
rest_framework 权限功能相关推荐
- 用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Flask-Principal 使用 Flask-Princ ...
- android ztree,ztree实现权限功能(横向显示)
最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...
- plsql查看用户权限_权限功能
几乎所有的后台都会有权限这个功能,权限也是后台管理系统很重要的一项功能,可以提高系统的安全性,也可以很好的使每个操作人员清晰地找到自己所对应的功能. 一般来说,系统中只有最高权限.或者这只权限的管理员 ...
- 实现ABP中Person类的权限功能
菜单项的显示功能已经完全OK了.那么我们就开始制作视图功能吧. 首先测试接口是否正常 我们通过代码生成器将权限和application中大部分功能已经实现了.那么我们来测试下这些接口ok不. 浏览/a ...
- 若依框架(RuoYi-Vue):权限功能模块设计分析
权限功能模块设计分析 一.若依Vue系统中的权限分类 1.菜单权限 2.按钮权限 3.接口权限 4.数据权限 二.各种类型权限实现原理 1.菜单权限 2.按钮权限 3.接口权限 4.数据权限 三.若依 ...
- 管理系统类项目的登陆与权限功能的实现
前言 笔者最近参与了公司的几个业务的管理系统类项目,在这样的项目需求中,相对于所选择的前端技术栈以及前后端分离协同开发的模式.理解并实现后台项目的业务需求是其中的重点,其中,账户的登陆,以及权限验证与 ...
- 5码默认版块_短说社区论坛系统版块权限功能
短说社区论坛系统近期开发了版块权限功能,版块权限功能与用户组功能关联,因此想要更好的使用版块权限功能,先了解短说用户组功能介绍.此贴详细介绍版块权限功能. 版块权限主要分为访问审核权限.版块访问权限. ...
- 修改若依的数据权限功能
若依(cloud版本)的数据权限功能是通过注解实现的,在需要数据权限的方法上加上注解. 在注解中判断当前用户的角色对应的数据权限类型,在执行的sql语句后面拼接部门和用户的sql过滤条件从而实现数据权 ...
- IDM统一权限功能修改心得
IDM身份管理系统是为解决企业内部多系统间用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理.Authentication认证管理.Authorization授权 ...
- 视频国标协议服务器,国标GB28181流媒体协议客户端EasyGBS视频平台权限功能的实现...
原标题:国标GB28181流媒体协议客户端EasyGBS视频平台权限功能的实现 大家知道TSINGSEE青犀视频全线产品更新过后,都有了管理员和非管理员登陆的区别,管理员拥有最高权限,可对服务器进行配 ...
最新文章
- RDKit | 基于不同描述符和指纹的机器学习模型预测logP
- 【快乐水题】509. 斐波那契数
- 主题模型 LDA,Dirichlet分布 和朴素贝叶斯算法
- vue实现实时监听文本框内容的变化(最后一种为原生js)
- 网页的js源文件被加密解决方案
- flask中的CBV和FBV
- PAT甲级 -- 1053 Path of Equal Weight (30 分)
- vue-cli3中安装lib-flexible和px2rem
- Qt添加类文件编译后,再添加宏Q_OBJECT
- java自定义方法使用_Java 自定义方法
- 五子棋服务端程序java_9网上五子棋对战(java)服务端源码
- java m查询_javassm框架
- 什么是Python解释器?
- 小程序定位并获取城市编码
- LeetCode——592.分数加减运算
- ICCV2021中的时序动作检测算法
- npm 安装碰到SSL问题
- 专访北森CEO纪伟国:解读SaaS+PaaS的云上发展路径
- 华为推送 简介 集成
- inprivate浏览是什么意思_InPrivate浏览是什么?