這裏有幾個概念php
權限:web
指用戶是否能夠執行哪些操做,如:編輯、發佈、查看回帖瀏覽器
角色yii
好比:VIP用戶組, 高級會員組,中級會員組,初級會員組post
VIP用戶組:發帖、回帖、刪帖、瀏覽權限ui
高級會員組:發帖、回帖、瀏覽權限spa
中級會員組:回帖、瀏覽權限code
初級會員組:瀏覽blog
在Yii2.0中ip
auth_item 存儲權限和角色,以下圖所示:
auth_item_child 表是權限和角色從屬關係,以下圖所示:
大概瞭解上面的概念後,咱們具體看具體怎麼實現的。
一、在config中console.php配置RBAC組件,以下圖
PS:
有的文章寫的是PhpManageer,若是是這樣的話,在運行會報錯。
而後運行
yii migrate --migrationPath=@yii/rbac/migrations/
成功執行,產生權限表。
二、首先要在web.php配置下RBAC的組件。
添加authManager組件,下面的xxxTable能夠不用添加,默認就是這樣的。
這時候,咱們刷新下前臺頁面,正常。這就說明配置方面沒有問題。
這時候,咱們來看下如何建立角色、權限、角色與權限方面的問題
咱們隨便建立個Controller,這裏我用IndexController,只要能訪問到這個Controller就行,無所謂哪一個控制器。
一、如何建立權限
而後訪問
http://yii.local.com:8090/index.php?r=admin/index/create-permission&item=index
必須帶參數,$item就是你要建立的權限。如:post-發帖,edit-編輯,update-更新,view-瀏覽,index-查看首頁等等
二、建立角色
一樣的道理,訪問
http://yii.local.com:8090/index.php?r=admin/index/create-role&item=vip_user
這時候,咱們建立了個vip_user用戶組。
三、如何將某角色擁有某權限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權限
四、如何將某用戶加入某角色(用戶組)中
瀏覽器訪問
http://yii.local.com:8090/index.php?r=admin/index/create-assign&item1=post&item2=1
意思是將uid=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作簡單介紹。具體咱們能夠將這些功能豐富以後,寫入後臺。