yii2 rbac許可權設定

2021-07-30 20:19:39 字數 1769 閱讀 3273

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...