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

2021-07-10 03:28:07 字數 1713 閱讀 7219

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