1. 程式人生 > >yii2的許可權管理系統RBAC簡單介紹

yii2的許可權管理系統RBAC簡單介紹

這裡有幾個概念

許可權:

指使用者是否可以執行哪些操作,如:編輯、釋出、查看回帖

角色

比如:VIP使用者組, 高階會員組,中級會員組,初級會員組

VIP使用者組:發帖、回帖、刪帖、瀏覽許可權

高階會員組:發帖、回帖、瀏覽許可權

中級會員組:回帖、瀏覽許可權

初級會員組:瀏覽

 

在Yii2.0中

  • yii\rbac: Item  為角色或者許可權的基類,其中用欄位type來標識。1代表角色,2代表權限
  • yii\rbac: Role  為代表角色的類
  • yii\rbac: Permission
      為代表權限的類
  • yii\rbac: Assignment  為代表使用者角色或者許可權的類
  • yii\rbac: Rule  為代表角色或許可權能否執行的判定規則表

 

auth_item 儲存許可權和角色,如下圖所示:

 

 

auth_item_child 表是許可權和角色從屬關係,如下圖所示:

 

大概瞭解上面的概念後,我們具體看具體怎麼實現的。

 

1、在config中console.php配置RBAC元件,如下圖

 

 

PS:

有的文章寫的是PhpManageer,如果是這樣的話,在執行會報錯。

 

然後執行

yii migrate [email protected]/rbac/migrations/

成功執行,產生許可權表。

 

2、首先要在web.php配置下RBAC的元件。

 

 

 

 

新增authManager元件,下面的xxxTable可以不用新增,預設就是這樣的。

 

這時候,我們重新整理下前臺頁面,正常。這就說明配置方面沒有問題。

 

這時候,我們來看下如何建立角色、許可權、角色與許可權方面的問題

 

我們隨便建立個Controller,這裡我用IndexController,只要能訪問到這個Controller就行,無所謂哪個控制器。

 

1、如何建立許可權

 

 

 

然後訪問 

 

http://yii.local.com:8090/index.php?r=admin/index/create-permission&item=index

 

必須帶引數,$item就是你要建立的許可權。如:post-發帖,edit-編輯,update-更新,view-瀏覽,index-檢視首頁等等

 

2、建立角色

 

 

同樣的道理,訪問

http://yii.local.com:8090/index.php?r=admin/index/create-role&item=vip_user

這時候,我們建立了個vip_user使用者組。

 

3、如何將某角色擁有某許可權OR如何將某許可權納入進某角色

 

 

$item1 是角色,$item2 是許可權

http://yii.local.com:8090/index.php?r=admin/index/create-empowerment&item1=vip_user&item2=edit

 

將edit許可權放進vip_user角色,即vip_user使用者組有edit許可權

 

4、如何將某使用者加入某角色(使用者組)中

 

 

瀏覽器訪問

1

http://yii.local.com:8090/index.php?r=admin/index/create-assign&item1=post&item2=1

意思是將uid=1的使用者賦予發帖的許可權

 

1

http://yii.local.com:8090/index.php?r=admin/index/create-assign&item1=vip_user&item2=1

意思是將uid=1的使用者賦予vip_user使用者組的許可權

 

這裡說明下,某使用者可以屬於某個使用者組即角色,也可以具有某個許可權。

 

 

如果某操作不在auth_item_child表的child中,將會

 

 

以上只是對RBAC做簡單介紹。具體我們可以將這些功能豐富之後,寫入後臺。