Yii2 許可權控制RBAC 例項篇(三)

2021-07-10 03:28:07 字數 983 閱讀 6284

思路解說:

首先,我們約定以controller/action這樣的格式作為有效的許可權名稱,直接將許可權賦給使用者,最後在can這個方法中做校驗。為了不破壞原始碼,我們可以在activerecord之前加一層基礎控制器basecontroller,普通控制器繼承basecontroller。

方案一

建立許可權:

那麼我們建立對應的許可權資料(如何建立在rbac第二篇中已經詳細講解)

許可權post/detail:文章詳情頁的許可權

許可權賦給使用者:

將許可權直接賦給使用者(此處使用者id為1)

檢測許可權:

在基礎控制器中的beforeaction中驗證許可權:

public function beforeaction($action)

$permissionname = $controller.'/'.$action;        

throw new \yii\web\unauthorizedhttpexception('對不起,您現在還沒獲此操作的許可權');

}return true;

}

注意:

這個必須要加,不然會報錯,至於為什麼就不多說了,簡稱一言難盡,v_v

方案二(**就不贅述了跟上面差不多)

許可權賦給角色,角色賦給使用者

建立角色:

還是之前的許可權[post/detail],去掉許可權和使用者關聯,新增許可權和角色的上下級關聯

將角色賦給使用者

檢測許可權

效果於上面保持一致

Yii2 許可權控制RBAC 應用篇(二)

1.首先我們要在配置檔案的元件 component 裡面配置一下 rbac authmanager class yii rbac dbmanager itemtable auth item assignmenttable auth assignment itemchildtable auth ite...

Yii2 rbac許可權控制詳解

首先本文所講的許可權控制有2種,一種是在資料庫裡建表,另一種是在框架裡寫檔案,dbmanager,phpmanager 第一種 我們先來講第一種dbmanager 1.yii config檔案配置 我用的高階模板 配置在common config main local.php或者main.php 2...

YII2 學習筆記 RBAC

1 配置使用者 model 實現介面 yii web identityinte ce 2 配置檔案 components authmanager class yii rbac dbmanager user 指定使用者模組的驗證類 identityclass api models members 這裡...