rest_framework 权限功能
权限:
问题:不用视图不用权限可以访问 基本使用 写上一个权限类 创建utils 中 permission.py文件
class SvipPermisson(object):
message = "必须是SVIP用户,否则无权访问" #页面无权时报错提示
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True class OrderView(APIView):
"""
订单相关业务 (只有SVIP用户有权限)
"""
#authentication_classes = [FirstAuthtication, Authtication]
permission_classes = [MyPermission, ]
def get(self, request, *args, **kwargs):
self.dispatch
ret = {'code':, "msg":None, 'data':None }
try:
ret['data'] = ORDER_DICT
except Exception as e:
pass
return 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= [] 源码流程:
dispatch
initial
permission 内置的权限
from rest_framework.permissions import BasePermission
class SVIPPermission(BasePermission): #按规范 需要继承BasePermission
message = "必须是SVIP才能访问"
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True 梳理:
.使用
-类: 继承 BasePermission 必须实现 has_permission方法
from rest_framework.permissions import BasePermission
class SVIPPermission(BasePermission): #按规范 需要继承BasePermission
message = "必须是SVIP才能访问"
def has_permission(self, request, view):
if request.user.user_type != :
return False
return True -返回值:
True #有权访问
False #无权访问
抛出异常 一般不做异常抛出异常
message = "SVIP" 局部:
permission_classes = [Mypermission]
全局:
REST_FRAMEWORK = {
"EDEFAULT_PERMISSION_CLASSES" :['api.utils.perimission.MyPermission']
}
.源码流程
rest_framework 权限功能的更多相关文章
- 实现ABP中Person类的权限功能
菜单项的显示功能已经完全OK了.那么我们就开始制作视图功能吧. 首先测试接口是否正常 我们通过代码生成器将权限和application中大部分功能已经实现了.那么我们来测试下这些接口ok不. 浏览/a ...
- ztree实现权限功能(横向显示)
最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...
- 基于xml 实现动态加载权限功能树列表---EFSFrame企业级开发架构
在学习EFSFrame框架的过程中,感触最深的就是通过xml来实现前台与后台数据的交互,页面设计灵活,不用管后台如何写的,前台与后台的交互唯一的交互通道都是xml,在我们需要添加页面.添加规定的格式的 ...
- 用 Flask 来写个轻博客 (25) — 使用 Flask-Principal 实现角色权限功能
目录 目录 前文列表 扩展阅读 Flask-Principal 使用 Flask-Principal 来实现角色权限功能 添加 Role Model 在 Manager shell 中手动的添加角色 ...
- .NET可视化权限功能界面设计
权限功能是信息系统不可或缺的重要部分,一个优秀的权限设计可以使开发工作事半功倍,给使用者带来良好的使用体验. 企业做生意,都会聘请员工,若是员工数量较多,"权限管理"必不可少,这样 ...
- 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能
9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...
- DRF的认证与权限功能
认证 1.全局配置 在setting.py进行配置. REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( # 'rest_framework. ...
- rest_framework 权限流程
权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...
- django框架-DRF工程之权限功能
1.相对于flask,原生而言django,DRF做的则更加的合理化,想要给予用户相应的权限,首先需要在settings中进行配置 REST_FRAMEWORK = { 'DEAFAULT_PERMI ...
随机推荐
- soapUI 5.1.2 下载以及破解
转:https://blog.csdn.net/weiqing723/article/details/78865734
- 复习昨天的,继续过Hard题目
# Title Editorial Acceptance Difficulty Frequency . 65 Valid Number 12.6% Hard . 126 Word ...
- 大话设计模式C++实现-第17章-适配器模式
一.UML图 关键词:Client须要Request()函数,Adaptee提供的是SpecificRequest()函数,Adapter提供一个Request()函数将Adaptee和Specifi ...
- java结合jQuery.ajax实现左右菜单联动刷新列表内容
http://域名/一级菜单ID-二级菜单ID/ 用这种URL请求页面,出现如图所看到的内容: 该页面包括四部分,顶部文件夹+左側菜单+右側菜单+右下側数据列表. 左側菜单包括一级菜单和二级菜单,点击 ...
- Maximum Bipartite Matching
算法旨在用尽可能简单的思路解决这个问题.理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时最好还是从样例入手.通过一个简单的样例,并编程实现,这个过程 ...
- jquery 函数的定义
var ss_login = { ptjy : function(method) { CloseAlert(); if( getLocalData("ActivePTJYUser" ...
- nyoj--214--单调递增子序列(二)(二分查找+LIS)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序 ...
- [JZOJ 5912] [NOIP2018模拟10.18] VanUSee 解题报告 (KMP+博弈)
题目链接: https://jzoj.net/senior/#contest/show/2530/2 题目: 众所周知,cqf童鞋对哲学有着深入的理解和认识,并常常将哲学思想应用在实际生活中,例如锻炼 ...
- (转)js document.all的用法
document.all用法 一. document.all是页面内所有元素的一个集合.例如: document.all(0)表示页面内第一个元素 二.document.all可以判断浏览器 ...
- 终于意识到BIM确实火了
碰巧遇到一个BIM会议.一大帮国内的老师桠桠叉叉坐了一大屋.听了半天感觉都是在吹BIM如何火.第一次听到这个概念感觉这个能火吗. 昨天雄安新区用BIM建设的新闻出来后,一下子惊了.看来BIM进入计算机 ...