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 |
|
意思是將uid=1的使用者賦予發帖的許可權
1 |
|
意思是將uid=1的使用者賦予vip_user使用者組的許可權
這裡說明下,某使用者可以屬於某個使用者組即角色,也可以具有某個許可權。
如果某操作不在auth_item_child表的child中,將會
以上只是對RBAC做簡單介紹。具體我們可以將這些功能豐富之後,寫入後臺。