思路解說:
首先,我們約定以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 這裡...