前面加 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();