实现目标
当前项目中,遇到一个问题,要设置多个账户分配不同的权限,同时每个账户都有子账号并且可对其分配权限。
注:当前一些电商平台的多商户平台思路能基本满足需求, 主账户管理员-》商城-》员工账号
遇到问题
传统的Laravel-permission只是对用户角色进行权限分配,RBAC结构无法满足于当前的需求
思路
角色管理不同角色有不同权限
管理员—分配权限—> 账户 —分配权限–> 子账户
思路一:主账户RBAC+子账户RBAC
分两个用户表,主账户表(超级管理员+高级用户)和子账户表;完全走两条路,这条路比较复杂一些;两套体系。
1.在登录时候区分 高级用户 和普通用户 高级用户则执行高级用户的账户体系,普通用户则执行普通用户的账户体系;
2.权限体系也分成两套,互相之间没有直接联系,而高级用户有对普通用户的权限管理;
思路二:RBAC+分级管理
一张用户表进行分级,0-超级管理员 1-主账户 2-子账户 相互直接pid进行绑定;
1.在登录时候判断用户类型,主账户将自身id存进缓存中PID里,子账户则将其父级存进缓存PID中;
2.在主账户分配给子账户权限时,要做判断只显示主账户拥有的权限;
3.页面加载数据时由于数据和主账户绑定,所有的数据请求时都要有where必要的条件uid=PID(主账户id),新增数据时也要带上条件;