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

這裏有幾個概念php

權限:web

指用戶是否能夠執行哪些操做,如:編輯、發佈、查看回帖瀏覽器

角色yii

好比:VIP用戶組, 高級會員組,中級會員組,初級會員組post

VIP用戶組:發帖、回帖、刪帖、瀏覽權限ui

高級會員組:發帖、回帖、瀏覽權限spa

中級會員組:回帖、瀏覽權限code

初級會員組:瀏覽blog

 

在Yii2.0中ip

  • yii\rbac: Item  爲角色或者權限的基類,其中用字段type來標識。1表明角色,2表明權限
  • yii\rbac: Role  爲表明角色的類
  • yii\rbac: Permission  爲表明權限的類
  • yii\rbac: Assignment  爲表明用戶角色或者權限的類
  • yii\rbac: Rule  爲表明角色或權限可否執行的斷定規則表

 

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作簡單介紹。具體咱們能夠將這些功能豐富以後,寫入後臺。

相關文章
相關標籤/搜索