1.首先我們要在配置檔案的元件(component)裡面配置一下 rbac
'authmanager' => [
'class' => 'yii\rbac\dbmanager',
'itemtable' => 'auth_item',
'assignmenttable' => 'auth_assignment',
'itemchildtable' => 'auth_item_child',
],
2.生成rbac預設資料表a.執行下面的命令生成許可權資料表:
yii migrate --migrationpath=@yii/rbac/migrations/
b.也可以開啟vendor\yiisoft\yii2\rbac\migrations\schema-mysql.sql 拷貝裡面的內容到資料庫執行生成資料表
3.新增角色和許可權
a.建立許可權
public function createpermission($name)
b.建立角色
public function createrole($name)
以上兩條新增,會創auth_item表中建立兩條記錄,以表中的type型別作為區分,type=1是角色,type=2為許可權
public function add($object)
elseif ($object instanceof rule) else
}
add方法會根據你傳入的物件屬性進行新增(新增角色和許可權都是additem,因為createpermission和createrole都建立了乙個item物件,只是物件中的type值不同)
4.新增使用者、角色和許可權之間的關係
a.將許可權賦給角色
public function addchild($items)
注意:上面建立的角色和許可權物件,必須已經在資料庫中建立,比如items['role'] = test,否則會報錯
b.將角色賦給使用者
public function addchild($items)
5.驗證許可權
public function beforeaction($action)
else
}
public function can($permissionname, $params = , $allowcaching = true)
$access = $this->getauthmanager()->checkaccess($this->getid(), $permissionname, $params);
if ($allowcaching && empty($params))
return $access;
}
Yii2 許可權控制RBAC 例項篇(三)
思路解說 首先,我們約定以controller action這樣的格式作為有效的許可權名稱,直接將許可權賦給使用者,最後在can這個方法中做校驗。為了不破壞原始碼,我們可以在activerecord之前加一層基礎控制器basecontroller,普通控制器繼承basecontroller。方案一 ...
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 這裡...