一个实战系统的权限架构思维推导过程
一个系统的权限架构思维推导过程
权限实际应该有四个部分:
1)顶部菜单权限
2)左侧导航菜单权限
3)模块操作项操作权限
4)数据浏览权限
首先他们都要能够通过统一的角色进行管理,那么一个角色可以设置4个不同部分的权限,也可以将4个部分部分整合成一个部分
其次顶部菜单和左侧导航菜单是有隶属关系的,那么可以合并成一颗树
再次左侧导航跟具体的功能模块也是有对应关系的,一个导航菜单对应一个功能模块
第四一个模块会有多个功能项,也就是操作权限的问题,那么功能项隶属于模块
第五数据浏览权限,要分种情况:
1)查看谁的数据:有两种做法:
a)按照组织架构来控制同级、上下级 ,这里也是,可以直接在角色部分选择部门组织即可
b)简单粗暴,直接选择哪些人即可,这里可以直接在角色部分进行人员选择即可
所以:a、b 在研发角度看是同一个问题
2)查看哪些数据:
这个本质就是显示哪些字段的问题,既然是字段,那么跟模块就存在对应关系了,那么跟模块存在隶属关系
综上思维路线总结如下:
1)权限树
顶部菜单
|--左侧导航菜单
|--系统功能模块
|--模块操作项
|--模块数据字段
2)角色
|--权限树选择项
|--角色对应的干系人或组织
最后是权限控制部分
通过统一的js方法或后台service方法该方法
输入:登录ID
输出:顶部菜单[左侧导航菜单[模块操作项[]]] (嵌套数组)
干系人或组织[] (数组)
可以合并输出一个json即可
本人原创,未经许可,可随意转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?