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(角色或者權限)是否可執行。
轉載于:https://www.cnblogs.com/baby123/p/4871779.html