Django如何实现RBAC权限管理
作者:xiaodong_blogs 时间:2021-05-20 19:14:27
Django RBAC权限管理
概述
RBAC(Role-Based Access Control,基于角色的访问控制),通过角色绑定权限,然后给用户划分角色。
比如说:
一个用户拥有若干个角色,这个角色呢又拥有若干个权限,CEO,具有公司全局的权限;
部门经理,具有部门全局的权限;
部门主管,具有部门部分的权限;
普通员工,具有部门一小部分权限。
不同的角色,能够获取的权限是不同的,角色的引入,让权限管理就会非常的灵活
流程图
models.py
资源表和角色表是多对多关系
from django.db import models
# Create your models here.
# 角色表
class Roles(models.Model):
name = models.CharField(max_length=50)
status = models.BooleanField(default=True)
class Meta:
db_table='roles'
# 管理员表
class Admin_user(models.Model):
username = models.CharField(max_length=50,verbose_name='用户名')
password = models.CharField(max_length=200,verbose_name='密码')
pic = models.CharField(max_length=200,default='',verbose_name='头像')
status = models.BooleanField(default=True,verbose_name='状态') # 状态
supper = models.BooleanField(default=False,verbose_name='是否为超级管理员') # 是否为超级管理员
role = models.ForeignKey(Roles,on_delete=models.CASCADE)
class Meta:
db_table='admin_user'
# 资源表
class Resource(models.Model):
name = models.CharField(max_length=50)
status = models.BooleanField(default=True)
url = models.CharField(max_length=50,default='')
level = models.IntegerField()
pid = models.ForeignKey('self',on_delete=models.SET_NULL,null=True,blank=True,related_name='subs')
roles = models.ManyToManyField(Roles,related_name='resources',null=True,blank=True)
class Meta:
db_table='resource'
来源:https://blog.csdn.net/weixin_55555564/article/details/119949654
标签:Django,RBAC,权限管理
0
投稿
猜你喜欢
Python/Django后端使用PIL Image生成头像缩略图
2021-12-18 09:46:27
Python中类的继承代码实例
2023-11-26 05:29:14
asp如何取回已忘记的密码?
2010-05-13 16:33:00
ASP页面内VBScript和JScript的交互
2007-09-11 13:49:00
web标准页面知识必备 Ⅰ
2008-03-06 13:24:00
windowns使用PySpark环境配置和基本操作
2021-04-12 06:43:06
PHP简单检测网址是否能够正常打开的方法
2023-11-17 22:22:56
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2022-08-13 22:06:58
人工智能学习Pytorch张量数据类型示例详解
2021-09-13 01:33:08
交互设计:简单
2011-08-27 16:46:27
python实现员工管理系统
2022-01-03 05:20:15
python语言基本语句用法总结
2023-07-03 01:26:34
opencv-python+yolov3实现目标检测
2022-01-18 06:45:17
python开发一款翻译工具
2022-01-19 07:28:43
Django解决frame拒绝问题的方法
2023-04-13 22:00:06
Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法
2012-12-04 19:57:33
python实现斐波那契递归函数的方法
2022-03-22 19:54:49
Oracle 数据库操作技巧集
2010-07-26 12:49:00
Mysql数据库备份和还原常用的命令
2011-12-01 10:41:54
python3使用腾讯企业邮箱发送邮件的实例
2023-09-29 14:31:05