博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dajngo 权限机制
阅读量:5784 次
发布时间:2019-06-18

本文共 1550 字,大约阅读时间需要 5 分钟。

hot3.png

原文: 

所谓权限系统 是针对某个用户/组的   

django 自带权限系统  我们这里统称为全局权限。 通俗的说就是  指定用户/组有对某个model的权限

主要有2个概念 : 用户全局权限,组全局权限。

用户全局权限管理:

myuser.user_permissions = [permission_list]myuser.user_permissions.add(permission, permission, ...) #增加权限myuser.user_permissions.remove(permission, permission, ...) #删除权限myuser.user_permissions.clear() #清空权限############################################################### 注:上面的permission为django.contrib.auth.Permission类型的实例##############################################################

组全局权限管理:

group.permissions = [permission_list]group.permissions.add(permission, permission, ...)group.permissions.remove(permission, permission, ...)group.permissions.clear()

 

检查全局权限:

myuser.has_perm('myapp.fix_car')

列出全局权限:

user.get_all_permissions()     #方法列出用户的所有权限,返回值是permission name的list

user.get_group_permissions()   #方法列出用户所属group的权限,返回值是permission name的list

 

全局权限装饰器

from django.contrib.auth.decorators import permission_required@permission_required('car.drive_car')def my_view(request):

基于Django-guardian的object permission的应用

github:

对象权限即用户A 有对象B 的权限

from guardian.shortcuts import assign_perm, get_permsfrom guardian.core import ObjectPermissionCheckerfrom guardian.decorators import permission_required

assign_perm 赋权

get_perms 返回对象权限   ###  测试了好久没有找到返回对象权限+全局权限   

@method_decorator(permission_required('main.delete_post',               (models.Post, 'id', 'pk'),               accept_global_perms=True))

3个参数 后2个可选 

当指定某个对象 并且accept_global_perms为False时 只检查对象权限

否者  对象权限和全局权限一起检查

accept_global_perms 默认为False

 

 

 

 

 

转载于:https://my.oschina.net/u/1000190/blog/680927

你可能感兴趣的文章
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>
统计数据库大小
查看>>
IO流的学习--文件夹下文件的复制
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
nginx在响应request header时候带下划线的需要开启的选项
查看>>
Linux下DHCP服务器配置
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
编写高性能的java程序
查看>>
Spring 的配置详解
查看>>
linux已经不存在惊群现象
查看>>
上位机和底层逻辑的解耦
查看>>
关于微信二次分享 配置标题 描述 图片??
查看>>
springcloud使用zookeeper作为config的配置中心
查看>>
校园火灾Focue-2---》洗手间的一套-》电梯
查看>>