tip1 配置rbac也就是基於角色的許可權管理規則,由角色,許可權和規則構成,使用它首先需要到配置檔案配置,class有兩種,phpmanager和dbmanager兩種
'authmanager' => [
'class'=> 'yii\rbac\phpmanager',
'defaultroles' =>['author'],
],
然後在yii2的專案目錄下建立rbac資料夾,並使資料夾可完全訪問,這個資料夾下將自動生成規則,許可權和角色的資訊,以及角色分配的資訊,
tip2 角色,許可權和規則角色也就是我們常見的管理員啊,會員啊,普通會員,每乙個註冊的使用者都可以給他分配乙個角色,相應的不同角色有不同的職能與許可權,就需要許可權這個模組,比如管理員可以有刪除會員的功能,可以調整會員積分的許可權等等。
那麼如何建立乙個角色呢?
$admin = $auth->createrole('admin');
$admin->description = "管理員";
$auth->add($admin);
一般來說,使用者的許可權是隸屬於管理員,也可以把會員新增到管理員內,不過也沒有多大意義
$auth
->addchild($admin , $author);
//下面建立許可權
$update
=$auth
->createpermission('update');
$update
->description =
"更新文章";
$auth
->add($update);
//然後賦予各個角色特有的許可權
$auth
->addchild($admin , $update);
這樣的話管理員都擁有了更新文章的許可權,那麼如果作者也想更新文章呢?很明顯作者應該只被允許修改自己的文章,也就是需要在up
date
這個許可權
上加乙個
規則,於
是需要生
成乙個分
支,於是
就有了 update_self,也就是up
date
self
滿足了規
則以後就
和 update是一樣的。
如果author還是談加的cr
eate
許可權,那
麼就要給
create許可權新增規則了,因為只能修改自己的文章,新增了規則後有沒有想過admin的感受?禍及池魚啊!admin應該是無條件使用cr
eate
的,卻因
為乙個a
utho
r要進行
一次驗證
,使用y
ii:: cr
eate
許可權,如
果當前文
章不是當
前使用者寫
的,規則
就會返回
fals
e,造成
的結果是
admi
n也不能
使用create許可權!!。所以當兩個角色具有類似的許可權(乙個主,乙個副),低階角色必須生成主許可權的乙個分支,這樣才不會影響到原來的高階角色。
$auth
->addchild($update_self, $update);
驗證的時候還是用主驗證就行了 Yii2 rbac許可權控制詳解
首先本文所講的許可權控制有2種,一種是在資料庫裡建表,另一種是在框架裡寫檔案,dbmanager,phpmanager 第一種 我們先來講第一種dbmanager 1.yii config檔案配置 我用的高階模板 配置在common config main local.php或者main.php 2...
yii2 rbac許可權控制詳細操作步驟
本篇的主題是 rbac許可權控制的詳細操作步驟,注意是操作步驟哦,關於配置與rbac的搭建,我們在博文 yii2搭建完美後台並實現rbac許可權控制例項教程說的再清楚不過了。但是,在很多人的反饋下,說是完全按照本主的步驟來的,絲毫不差,為啥選單不顯示,為啥不顯示呢不顯示?艾瑪,最終在群裡幫人除錯的時...
Yii2 rbac許可權控制之rule教程詳解
在我們之前yii2搭建後台並實現rbac許可權控制完整例項教程中,不知道你曾經疑惑過沒有乙個問題,rule表是做什麼的,為什麼在整個過程中我們都沒有涉及到這張表?相信我不說,部分人也都會去嘗試,或或google,到頭來也會竹籃打水,這部分講解的內容少之又少啊!對於一般的許可權系統而言,我們之前做的r...