Interface yii\rbac\ManagerInterface
继承 | yii\rbac\CheckAccessInterface |
---|---|
实现 | yii\rbac\BaseManager, yii\rbac\DbManager, yii\rbac\PhpManager |
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/rbac/ManagerInterface.php |
有关 ManagerInterface 的更多详细信息和用法信息,请参阅 授权指南。
公共方法
方法详情
向 RBAC 系统添加角色,权限或规则。
public abstract boolean add($object) | ||
$object | yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule | |
return | boolean | 角色,权限或规则是否已成功添加到系统中 |
---|---|---|
throws | Exception | 如果数据验证或保存失败(例如角色名称或权限不唯一) |
将项目添加为另一项目的子项。
public abstract boolean addChild($parent, $child) | ||
$parent | yii\rbac\Item | |
$child | yii\rbac\Item | |
return | boolean | 是否成功添加为子项 |
---|---|---|
throws | yii\base\Exception | 如果父子关系已经存在或者检测到循环。 |
为用户分配角色。
public abstract yii\rbac\Assignment assign($role, $userId) | ||
$role | yii\rbac\Role|yii\rbac\Permission | |
$userId | string|integer | 用户 ID(见 yii\web\User::$id) |
return | yii\rbac\Assignment | 角色分配信息。 |
---|---|---|
throws | Exception | 如果该角色已分配给用户 |
检查将孩子加入父项的可能性。
public abstract boolean canAddChild($parent, $child) | ||
$parent | yii\rbac\Item | 父项 |
$child | yii\rbac\Item | 要添加到层次结构中的子项 |
return | boolean | 是否可以添加 |
---|
创建一个新的 Permission 对象。 请注意,新创建的权限尚未添加到 RBAC 系统。 你必须填写所需数据并调用 add() 将其添加到系统中。
public abstract yii\rbac\Permission createPermission($name) | ||
$name | string | 权限名称 |
return | yii\rbac\Permission | 新的 Permission 对象 |
---|
创建一个新的 Role 对象。 请注意,新创建的角色尚未添加到 RBAC 系统。 你必须填写所需数据并调用 add() 将其添加到系统中。
public abstract yii\rbac\Role createRole($name) | ||
$name | string | 角色名称 |
return | yii\rbac\Role | 新的 Role 对象 |
---|
返回有关角色和用户的分配信息。
public abstract null|yii\rbac\Assignment getAssignment($roleName, $userId) | ||
$roleName | string | 角色名称 |
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
return | null|yii\rbac\Assignment | 分配信息。如果该角色没有分配给该用户, 则返回 Null。 |
---|
返回指定用户的所有角色分配信息。
public abstract yii\rbac\Assignment[] getAssignments($userId) | ||
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
return | yii\rbac\Assignment[] | 由角色名称索引的分配。如果该用户没有分配角色, 则返回空数组。 |
---|
返回指定角色的子角色。深度不受限制。
public abstract yii\rbac\Role[] getChildRoles($roleName) | ||
$roleName | string | 要为其提供子角色的角色的名称 |
return | yii\rbac\Role[] | 子角色。该数组由角色名称索引。 第一个元素是父角色本身的一个实例。 |
---|---|---|
throws | yii\base\InvalidParamException | 如果找不到通过 $roleName 获取的 Role |
返回子项权限和角色。
public abstract yii\rbac\Item[] getChildren($name) | ||
$name | string | 父项名 |
return | yii\rbac\Item[] | 子项权限和角色 |
---|
返回指定的权限。
public abstract null|yii\rbac\Permission getPermission($name) | ||
$name | string | 权限名称。 |
return | null|yii\rbac\Permission | 权限对应于指定名称的权限。如果没有此类权限,则返回 Null。 |
---|
返回系统中的所有权限。
public abstract yii\rbac\Permission[] getPermissions() | ||
return | yii\rbac\Permission[] | 系统中的所有权限。该数组由权限名称索引。 |
---|
返回指定角色所代表的所有权限。
public abstract yii\rbac\Permission[] getPermissionsByRole($roleName) | ||
$roleName | string | 角色名称 |
return | yii\rbac\Permission[] | 角色所代表的所有权限。该数组由权限名称索引。 |
---|
返回用户拥有的所有权限。
public abstract yii\rbac\Permission[] getPermissionsByUser($userId) | ||
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
return | yii\rbac\Permission[] | 用户拥有的所有权限。该数组由权限名称索引。 |
---|
返回指定的角色。
public abstract null|yii\rbac\Role getRole($name) | ||
$name | string | 角色名称。 |
return | null|yii\rbac\Role | 角色与指定名称对应的角色。如果没有这样的角色,则返回 Null。 |
---|
返回系统中的所有角色。
public abstract yii\rbac\Role[] getRoles() | ||
return | yii\rbac\Role[] | 系统中的所有角色。该数组由角色名称索引。 |
---|
返回通过 assign() 分配给用户的角色。 请注意,不会返回未直接分配给用户的子角色。
public abstract yii\rbac\Role[] getRolesByUser($userId) | ||
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
return | yii\rbac\Role[] | 直接分配给用户的所有角色。该数组由角色名称索引。 |
---|
返回指定名称的规则。
public abstract null|yii\rbac\Rule getRule($name) | ||
$name | string | 规则名称 |
return | null|yii\rbac\Rule | 规则对象,如果指定的名称与规则不对应,则为 null。 |
---|
返回系统中可用的所有规则。
public abstract yii\rbac\Rule[] getRules() | ||
return | yii\rbac\Rule[] | 由规则名称索引的规则 |
---|
返回分配给指定角色的所有用户 ID。
public abstract array getUserIdsByRole($roleName) | ||
$roleName | string | |
return | array | 用户 ID 字符串数组 |
---|
返回一个值,该值指示父项的子项是否已存在。
public abstract boolean hasChild($parent, $child) | ||
$parent | yii\rbac\Item | |
$child | yii\rbac\Item | |
return | boolean | 是否 |
---|
从 RBAC 系统中删除角色,权限或规则。
public abstract boolean remove($object) | ||
$object | yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule | |
return | boolean | 是否成功删除了角色,权限或规则 |
---|
删除所有授权数据,包括角色,权限,规则和分配。
public abstract void removeAll() |
删除所有角色分配。
public abstract void removeAllAssignments() |
删除所有权限。 所有父子关系将相应调整。
public abstract void removeAllPermissions() |
删除所有角色。 所有父子关系将相应调整。
public abstract void removeAllRoles() |
删除所有规则。 所有具有规则的角色和权限都将相应调整。
public abstract void removeAllRules() |
从父项中移除一个子项。 注意,子项目不会被删除。仅删除父子关系。
public abstract boolean removeChild($parent, $child) | ||
$parent | yii\rbac\Item | |
$child | yii\rbac\Item | |
return | boolean | 是否删除成功 |
---|
从父项那里删除所有子项。 注意,子项目不会被删除。仅删除父子关系。
public abstract boolean removeChildren($parent) | ||
$parent | yii\rbac\Item | |
return | boolean | 是否删除成功 |
---|
撤消用户的角色。
public abstract boolean revoke($role, $userId) | ||
$role | yii\rbac\Role|yii\rbac\Permission | |
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
return | boolean | 是否撤销成功 |
---|
撤消用户的所有角色。
public abstract \yii\rbac\bool是否撤销成功 revokeAll($userId) | ||
$userId | string|integer | 用户 ID(详见 yii\web\User::$id) |
更新系统中指定的角色,权限或规则。
public abstract boolean update($name, $object) | ||
$name | string | 角色,权限或规则的旧名称 |
$object | yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule | |
return | boolean | 更新是否成功 |
---|---|---|
throws | Exception | 如果数据验证或保存失败(例如角色名称或权限不唯一) |