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
posted @ 2014-02-15 21:13  zhepama  阅读(798)  评论(0编辑  收藏  举报