yii2 rbac 设计
- tbl_auth_item 根据type存储认证项目...role.task.operation
游客... 不能操作任何模块 普通用户 ..biz_rule..需要登录 只有这里返回true,才能进行下去 高级用户 ..biz_rule..需要登录 a模块 b模块 c模块
- tbl_auth_item_child 认证项目的关系...a包含b
普通用户 a模块b模块 高级用户 a模块b模块c模块
- tbl_auth_assignment 和用户id挂上关系..
这里可以根据用户id和项目之间的关系使用.bizRule..如果这里通过了规则,会直接返回
先是tbl_auth_item的bizRule然后是tbl_auth_assignment的bizRule用户登录后..
- 1.使用getAssignments获取角色名,根据用户id 查找tbl_auth_assignment获取itemname查找tbl_auth_item.获取到id
- 2.使用getItemChildren将用户可用的模块读取出来存在cache中,查找 tbl_auth_item_child 所有子类..
- 3.覆盖checkAccess..修改根据模块返回ture还是false