深刻理解yii2之RBAC(模塊化系統)

1、前言yii2

 

上一篇文章咱們已經大體談過RBAC究竟是什麼和yii2底層RBAC接口的分析。架構

下面我深刻理解一下RBAC權限分配,深刻理解下yii2底層RBAC擴展,以及它是如何針對模塊化系統的開發的?yii

2、介紹模塊化

 

2.1 下面是張大體的思惟導圖:spa

由圖可見,咱們對yiiRABC底層接口的擴展邏輯。3d

 

2.2 下面是數據表具體流程圖:blog

咱們擴展了四個數據表格:auth_module、auth_role、auth_role_item、auth_role_child接口

2.3下面是引入的數據表結構:ci

auth_module表結構

Id路由

primary key

name(模塊、功能名稱)

varchar(255)

route(路由)

varchar(255)

pid

smallint(6)

create_at

bigint

update_at

bigint

status(是否已添加權限、角色)

smallint(6)  1已添加 2未添加

1

營運管理

fake/one (僞路由)

0

1555645646546

1555645646546

1

2

驗卡管理

check-card/index

1

1555645646546

1555645646546

1

3

商品管理

shop/index

1

1555645646546

1555645646546

1

4

驗卡

check-card/check

2

1555645646546

1555645646546

1

5

驗卡

check-card/check-card-number

2

1555645646546

1555645646546

2

auth_role_child表結構

id

primary key

user_id(用戶ID)

bigint    unique

role_id(高級角色ID)

bigint

create_at

bigint

update_at

bigint

1

22

2

1555645646546

1555645646546

2

25

3

1555645646546

1555645646546

3

12

1

1555645646546

1555645646546

4

55

3

1555645646546

1555645646546

5

23

4

1555645646546

1555645646546

 

auth_role_item表結構

 

role_id(高級角色ID)

bigint         primary key 聯合主鍵

auth_item(低級角色)

varchar(255)    primary key聯合主鍵

create_at

bigint

update_at

bigint

1

營運管理

1555645646546

1555645646546

1

驗卡

1555645646546

1555645646546

1

公共管理

1555645646546

1555645646546

1

卡種管理

1555645646546

1555645646546

1

課種管理

1555645646546

1555645646546

 

 

auth_role表結構

 

 

Id

primary key

name(高級角色)

varchar(255)

company_id(公司ID)

smallint(6)

venue_id(場館ID)

bigint

update_at

bigint

create_at

bigint

derive_id(派生角色ID)

bigint

1

營運經理

1

[12,14,59]

1555645646546

1555645646546

0

2

水吧員工

1

[12]

1555645646546

1555645646546

1

3

CEO

1

[12,14,16,19,20,28,49,55,54,58,53]

1555645646546

1555645646546

0

4

團教經理

1

[12,14,59]

1555645646546

1555645646546

0

5

吧檯員工

1

[12]

1555645646546

1555645646546

1

 

模塊 =》 子模塊 =》 功能    ;  咱們動態的爲RBAC基礎表,添加權限和基礎角色, 模塊表中的name是auth_item中的基礎角色名稱。模塊中的路由,則是auth_item中權限的名稱。而後,基礎角色和權限創建關係。分配好模塊,添加過基礎角色和權限,並創建關係後,

下一步,咱們建立高級角色,給高級角色添加屬性,如:組織架構等。建立好高級角色後,咱們須要把低級角色綁定給咱們的高級角色。好了,一切都準備就緒,咱們就能夠把用戶綁定給咱們的高級角色。注意,上一篇RBAC中說到,在模塊化的系統中,因爲菜單、模塊、功能、以及頁面元素過多,致使的RBAC在分配用戶時,致使的基礎角色過多問題。咱們這裏作了一套獨有的解決方案,即:派生規則。咱們能夠拿到一個高級角色的權限,而後往下派生低級角色,基礎高級角色pid是0,這樣清晰明瞭了公司高層到基層的層級關係,

例如:總經理(高級角色);咱們能夠拿到它的權限,往下派生。總經理=》副經理=》負責人=》組長等等角色和權限。

 3、尾語

 

好了,yii2的RBAC權限到這就結束了,小夥伴們有什麼建議和疑問能夠在下面評論留言,如需轉載請註明做者和來源,支持原創。

相關文章
相關標籤/搜索