Rbac 支持两种类,PhpManager(基于文件的) 和 DbManager(基于数据库的)
权限:
就是指用户是否可以执行哪些操作
角色:
就是上面说的一组操作的集合,角色还可以继承
在Yii2.0中
- yii\rbac: Item 为角色或者权限的基类,其中用字段type来标识
- yii\rbac: Role 为代表角色的类
- yii\rbac: Permission 为代表权限的类
- yii\rbac: Assignment 为代表用户角色或者权限的类
- yii\rbac: Rule 为代表角色或权限能否执行的判定规则表
在数据库中存储的RBAC层次是低效率的浪费性能的,但要灵活得多
存储角色或权限的表:auth_item
用来存储角色和权限的数据,Role类和Permission类有一个共同的基类yii\rbac:Item,用$type字段来标识是角色还是权限。
角色权限关联表:auth_item_child
用来保存角色和权限的关系
用户角色(权限)表:auth_assignment
用户的权限包含两部分,一部分是所指定的角色代表的权限,一部分就是直接所指定的权限
规则表:auth_rule
如果要在规则表:[auth_rule]中增加一条规则就得要有对应的规则类,并实现方法abstract public function execute($item, $params)具体的逻辑来判定$item(角色或者权限)是否可执行。