一个系统的权限架构思维推导过程
权限实际应该有四个部分:
1)顶部菜单权限
2)左侧导航菜单权限
3)模块操作项操作权限
4)数据浏览权限
首先他们都要能够通过统一的角色进行管理,那么一个角色可以设置4个不同部分的权限,也可以将4个部分部分整合成一个部分
其次顶部菜单和左侧导航菜单是有隶属关系的,那么可以合并成一颗树
再次左侧导航跟具体的功能模块也是有对应关系的,一个导航菜单对应一个功能模块
第四一个模块会有多个功能项,也就是操作权限的问题,那么功能项隶属于模块
第五数据浏览权限,要分种情况:
1)查看谁的数据:有两种做法:
a)按照组织架构来控制同级、上下级 ,这里也是,可以直接在角色部分选择部门组织即可
b)简单粗暴,直接选择哪些人即可,这里可以直接在角色部分进行人员选择即可
所以:a、b 在研发角度看是同一个问题
2)查看哪些数据:
这个本质就是显示哪些字段的问题,既然是字段,那么跟模块就存在对应关系了,那么跟模块存在隶属关系
综上思维路线总结如下:
1)权限树
顶部菜单
|--左侧导航菜单
|--系统功能模块
|--模块操作项
|--模块数据字段
2)角色
|--权限树选择项
|--角色对应的干系人或组织
最后是权限控制部分
通过统一的js方法或后台service方法该方法
输入:登录ID
输出:顶部菜单[左侧导航菜单[模块操作项[]]] (嵌套数组)
干系人或组织[] (数组)
可以合并输出一个json即可
本人原创,未经许可,可随意转载