restful framework之权限组件
2018-10-22 20:38
127 查看
一、权限简介
只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制
二、局部使用
from rest_framework.permissions import BasePermission class UserPermission(BasePermission): message = '不是超级用户,查看不了' def has_permission(self, request, view): # user_type = request.user.get_user_type_display() # if user_type == '超级用户': 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",] }
四、源码分析
def check_permissions(self, request): for permission in self.get_permissions(): if not permission.has_permission(request, self): self.permission_denied( request, message=getattr(permission, 'message', None) )
self.get_permissions()
def get_permissions(self): return [permission() for permission in self.permission_classes]
权限类使用顺序:先用视图类中的权限类,再用settings里配置的权限类,最后用默认的权限类
相关文章推荐
- rest-framework框架——认证、权限、频率组件
- restful framework之序列化组件
- restful framework之频率组件
- Supesoft权限管理系统(FrameWork) 1.0.9 Release
- 系统整合Spring FullStack framework和Jersey RESTful framework 的web.xml写法
- Django编写RESTful API(四):认证和权限
- 四大组件之Service(四)-Service的线程、工作线程、权限及系统Service
- FrameWork数据权限浅析1之基于手工修改模型实现行级数据安全
- react高阶组件经典应用之权限控制详解
- 《用EOM的眼光评判‘我要做全国最最好的标准权限组件和通用权限管理软件’1》
- 可以永久免费下载、免费使用、免费升级、有QQ153585978群技术支持的通用权限管理系统组件【含免费代码生成器】
- Django 之 权限系统(组件)
- Yii的Rbac权限管理组件
- 4.Unity3D热更新-LuaFramework-Lua组件
- Framework版本导致不能加载相应的组件
- 使用excel组件时的权限设置
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件Web业务平台
- 安装VS2010旗帜版,出现“某些组件必须安装在 目录下,请检查是否有足够的写入权限以及足够的空间”
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- (01)大型信息化系统组件 - 通用权限管理模块整体开发定位