網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
Django RBAC權(quán)限管理
概述
RBAC(Role-Based Access Control,基于角色的訪問控制),通過角色綁定權(quán)限,然后給用戶劃分角色。
比如說(shuō):
- 一個(gè)用戶擁有若干個(gè)角色,這個(gè)角色呢又擁有若干個(gè)權(quán)限,CEO,具有公司全局的權(quán)限;
- 部門經(jīng)理,具有部門全局的權(quán)限;
- 部門主管,具有部門部分的權(quán)限;
- 普通員工,具有部門一小部分權(quán)限。
不同的角色,能夠獲取的權(quán)限是不同的,角色的引入,讓權(quán)限管理就會(huì)非常的靈活
流程圖
models.py
資源表和角色表是多對(duì)多關(guān)系
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='狀態(tài)') # 狀態(tài)
supper = models.BooleanField(default=False,verbose_name='是否為超級(jí)管理員') # 是否為超級(jí)管理員
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'
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_55555564/article/details/119949654
相關(guān)推薦
- 2022-06-01 Python?分形算法代碼詳解_python
- 2022-04-19 python獲取http請(qǐng)求響應(yīng)頭headers中的數(shù)據(jù)的示例_python
- 2023-12-02 浮動(dòng)清除通用代碼
- 2023-07-30 vscode自定義用戶代碼片段
- 2023-01-10 C#實(shí)現(xiàn)無(wú)損壓縮圖片的示例詳解_C#教程
- 2022-11-17 獲取C++變量類型的簡(jiǎn)單方法_C 語(yǔ)言
- 2022-04-16 python如何導(dǎo)入自己的模塊_python
- 2022-11-05 C/C++讀取大文件數(shù)據(jù)方式詳細(xì)講解_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支