RABC經常使用的一些方法

前面加 yii::$app->authmanager->....web

 

ManagerInterface權限管理的接口,若是要自定義RBAC並要利用YII的RBAC相應的功能就須要實現這個接口
YII2 裏的BaseManager(抽象類) 就實現了這個接口  可是並無徹底實現這個接口的全部方法,接口中的部分方法被DbMagager 或 PhpManager實現了,一個是基於數據庫的RBAC 一個是基於PHP文件的RBAC

檢查用戶是否擁有某項權限
$userId 用戶惟一標識 來源於\yii\web\User::id  
$permissionName  權限名稱
$params 爲當前用戶指派的權限規則
返回 boolean數據庫

public function checkAccess($userId, $permissionName, $params = []);數組


建立一個角色對象
     提示:建立角色對象並無添加到RBAC  須要使用  add()方法添加到系統的RBAC
返回 role對象app

public function createRole($name);yii



建立一個權限對象
         須要調用add()方法添加到RBAC
返回Permission對象spa

public function createPermission($name);對象


添加角色、權限或者規則到RBAC庫  參數爲相應的對象
返回 boolean索引

public function add($object);接口


刪除角色或權限或規則記錄rem

public function remove($object);



更新一條記錄(角色、權限或規則)
$name 須要更新的名稱 返回BOOLEAN  

public function update($name, $object);



獲取命名的角色
$name 角色的名稱      返回角色對應的名稱   若是角色不存在則返回null

public function getRole($name);



返回全部的角色  roles[]  索引爲角色名

public function getRoles();



根據用戶ID返回角色信息
若是子角色沒有直接assigned 那麼不會返回
返回數組 以角色名索引

public function getRolesByUser($userId);




返回權限名稱或 NULL

public function getPermission($name);


返回全部的權限

public function getPermissions();


權限角色名稱返回權限名稱  數組形式

public function getPermissionsByRole($roleName);


根據角色ID返回權限名稱  數組形式

public function getPermissionsByUser($userId);


根據規則名稱返回規則對象

public function getRule($name);


返回全部的規則 數組

public function getRules();


爲一條記錄添加一個子記錄

public function addChild($parent, $child);



刪除一個子記錄
注意:子記錄並非被刪除了,而是斷開了與當前父記錄的關係

public function removeChild($parent, $child);



刪除全部的子記錄

public function removeChildren($parent);



是否擁有子記錄

public function hasChild($parent, $child);



返回子權限或角色item[]

public function getChildren($name);



爲某個用戶分配一個角色
$role Role對象   用戶ID

public function assign($role, $userId);



從某個用戶撤銷一個角色
返回BOOLEAN

public function revoke($role, $userId);



清空該用戶的全部角色

public function revokeAll($userId);


根據角色名返回該用戶分配的角色信息

public function getAssignment($roleName, $userId);



返回全部的分配的角色信息

public function getAssignments($userId);



刪除全部的受權數據  包括角色、權限、規則  、分配

public function removeAll();



刪除全部的權限

public function removeAllPermissions();


刪除全部的角色

public function removeAllRoles();


刪除全部的規則

public function removeAllRules();


刪除全部的分配

public function removeAllAssignments();