Django如何實現(xiàn)RBAC權限管理
更新時間:2022年12月20日 14:39:58 作者:xiaodong_blogs
這篇文章主要介紹了Django如何實現(xiàn)RBAC權限管理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
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='狀態(tài)') # 狀態(tài)
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'
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決python報錯ImportError:urllib3?v2.0?only?supports?OpenSSL
這篇文章主要介紹了解決python報錯ImportError:urllib3?v2.0?only?supports?OpenSSL?1.1.1+的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12
python中的opencv和PIL(pillow)轉化操作
這篇文章主要介紹了python中的opencv和PIL(pillow)轉化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python制作定時發(fā)送信息腳本的實現(xiàn)思路
這篇文章主要介紹了python實現(xiàn)企業(yè)微信定時發(fā)送文本消息的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Flask框架學習筆記之使用Flask實現(xiàn)表單開發(fā)詳解
這篇文章主要介紹了Flask框架學習筆記之使用Flask實現(xiàn)表單開發(fā),結合實例形式較為詳細的分析了flask框架表單模板定義、數(shù)據提交等相關操作技巧,需要的朋友可以參考下2019-08-08

