一、权限简介

只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制

二、局部使用

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里配置的权限类,最后用默认的权限类

最新文章

  1. 关于jQuery里面的选择器
  2. [maven] 常用插件解析
  3. shell script练习
  4. NYOJ--353--bfs+优先队列--3D dungeon
  5. 升级Cocoapods引起的Mantle库找不到的问题及解决方法
  6. 将个人博客从GitHub迁移至阿里云服务器过程总结
  7. Javascript我学之六对象工厂函数与构造函数
  8. oracle:10g下载地址(转载)
  9. web前端知识大纲:系列三 html篇
  10. Go 初体验 - channel.2 - 超时机制
  11. 黄聪:什么是XSS攻击
  12. 神州数码RIP路由协议
  13. 8 -- 深入使用Spring -- 4...4 Spring 的 AOP 支持
  14. JS 检测浏览器中是否安装了特定的插件
  15. Spring boot starter pom的依赖关系说明
  16. CentOS 安装 Hadoop
  17. CSS节选——选择器
  18. scala中的高阶函数
  19. (转)MySQL- 5.7 sys schema笔记,mysql-schema
  20. aoj0121

热门文章

  1. Hadoop HBase概念学习系列之HBase里的高表设计概念(表设计)(二十八)
  2. November 19th 2016 Week 47th Saturday
  3. 个人技术博客(1/2)android布局技巧
  4. PHP Redis 全部操作方法 转载
  5. Latex排版全解
  6. CORS跨域与Nginx反向代理跨域优劣对比
  7. 1217. [HNOI2003]消防局的设立【贪心】
  8. Hadoop学习之路(二)Hadoop发展背景
  9. Python 日志输出
  10. shadowssock+openvpn 2.2.2 成功*** -- 好文档 - 原理理解+架构