rbac是基於角色的許可權設計,一共包含六張表,具體的表設計如下:
from django.db importmodels
class
menu(models.model):
"""選單表
"""title = models.charfield(verbose_name='
選單名稱
',max_length=32,unique=true)
icon = models.charfield(max_length=128, blank=true, null=true)
def__str__
(self):
return
self.title
class
permission(models.model):
"""許可權表
"""title = models.charfield(verbose_name='
許可權標題
', max_length=32)
url = models.charfield(verbose_name='
含正則的url
', max_length=128)
name=models.charfield(verbose_name='
url別名
',max_length=64,unique=true) #
控制許可權到按鈕
parent=models.foreignkey(verbose_name='
父許可權',to='
self
',null=true,blank=true,on_delete=models.cascade,limit_choices_to=)#
構建非選單許可權關係,選單預設展開
menu=models.foreignkey(verbose_name='
選單',to='
menu
',null=true,blank=true,on_delete=models.cascade)
def__str__
(self):
return
self.title
class
role(models.model):
"""角色
"""title = models.charfield(verbose_name='
角色名稱
', max_length=32)
permissions = models.manytomanyfield(verbose_name='
擁有的所有許可權
', to='
permission
', blank=true)
def__str__
(self):
return
self.title
class
userinfo(models.model):
"""使用者表
"""username = models.charfield(verbose_name='
使用者名稱', max_length=32)
password = models.charfield(verbose_name='
密碼', max_length=64)
email = models.charfield(verbose_name='
郵箱', max_length=32)
roles = models.manytomanyfield(verbose_name='
擁有的所有角色
', to=role, blank=true)
class
meta:
abstract=true #
為了crm的使用者表進行繼承
def__str__
(self):
return self.username
其中使用者表和角色表是多對多的關係、角色表和許可權表是多對多的關係。另外許可權表關聯選單,這樣某乙個許可權url掛載某乙個選單下,並且許可權表關聯自身,這樣比如增加、刪除、修改的許可權url又可以掛在某乙個許可權url下面。
RBAC使用者許可權管理資料庫設計
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC使用者許可權管理資料庫設計
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC使用者許可權管理資料庫設計
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...