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 --migrationPath=@yii/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做簡單介紹。具體我們可以將這些功能豐富之後,寫入後臺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章