关于角色数据权限相关问题,400奉上

极客诗人 2021-01-30 01:11:39
在我们实际业务中,权限是尤为重要的一个环节。

目前权限的解决方案也是有很多。

但最近在实际业务开发中,就有些问题如下:

1.管理角色默认拥有所有数据


2.在某些数据的状态值(例如流程节点XXX的)为指定时,某些角色能看见数据进行操作,操作后数据不可见。

望指点讨论,400奉上
...全文
3793 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cn2719691 2021-02-04
  • 打赏
  • 举报
回复
有几个方式吧,第一种简单点,用户表记录权限,然后程序根据权限开放按键或显示之类的 另外高级点的就是再写个菜单表,与权限对应,或者直接与用户对应,运行时查询菜单表分别显示菜单。
  • 打赏
  • 举报
回复
引用 1 楼 极客诗人 的回复:
目前均是在代码中写死。 想将2更加灵活的处理,故此一贴,望赐教
这其实是某种业务架构、业务 API 的具体设计抽象层次不够的问题。是业务流程了解不深入的问题,是对业务不熟悉的问题,而不适合纠结“通用数据库表增删改查”概念。
  • 打赏
  • 举报
回复
例如一个系统如果有工作流图设计器,则在设计器上对工作流节点配置“业务流程权限”,来说明节点数据的产生来源(并不是产生数据权限本身,而是配置数据权限的生成规则,例如配置某节点只能被传送给流程发起人、当前节点的接收人所在部门的某个岗位的人,等等)。假设系统中还有一些资产,那么你需要配置资产保管负责人、资产复核负责人。假设系统还有一些研发代码和研发问题,你需要配置研发工作组,问题接收人、评估参与人、任务分配者、最底层干活的人、测试人员、负责上线的人、测试人员,等等。 一个不大的业务系统中假设慢慢产生有500种数据库表,那么你可能需要在10种不同的数据库表中为每一“行”数据指定你说的所谓的“某些角色能看见数据进行操作”这类东西。也就是说真正的系统在高级别的业务对象上控制权限,而不是在低级别的“通用数据”上控制权限。有些人假设系统开发最高级的事情就是弄个后台数据库的查询客户端 Table 来“增删改查”数据,这是最学究、最简单化、最 low的想法,看上去高大上,其实这跟刚工作3个月的学生灭有区别,远远脱离了业务系统架构。真正的系统是用 API 将所有客户端与后台数据库想分离,客户端根本不可能用一个所谓的数据库表增删改查 Table 界面来随便乱改数据。真正的系统能把百十来个 业务API 给开放给各个客户端系统且提高整个系统使用效率、使用价值就不错了,需要在 API 接口上分别控制“权限”,还纠结低级地“随便去增删改查所有数据”?
  • 打赏
  • 举报
回复
仅仅基于“数据层面”来设计权限,其实是最学究化、理想化的一种方式,这个前提是整个数据“读取”的 api 都被你自己编程控制情况下,例如你自己开发一个 SQLHelper且你自己解析、编译 sql 语句。 而基于工作流节点的权限管理,是基于“文档”的权限管理,是基于高一级别的“业务数据权限管理”。可见它不是基于 low 层面的通用数据库数据概念,而是基于业务领域分析来考虑。 进一步地可以看到,随着业务分析的深入,权限问题实际上在多“种”业务领域对象上都有涉及,而且其实是跟业务的“本质”相关的。例如工作流节点的权限,是在工作流图的设计器上进行配置,在工作流节点文档数据对象产生时指明了“发送人、接收人、抄送人”,这当然是与工作流协同、即时消息业务相关的。 可以说,认为“整个数据都能随便设置权限”其实是个幼稚的想法。更高级的想法反而是实际的——每一个业务服务模块的 API 各自判断的调用者是否有权限访问数据。先对业务领域进行详细设计,仅针对对某1、2种业务领域对象来适配权限系统,而不是以为纠结“所有数据”这种空洞的概念来适配权限概念。
圣殿骑士18 2021-01-30
  • 打赏
  • 举报
回复
写死不写死,也就是把配置存起来的问题,也不难吧
圣殿骑士18 2021-01-30
  • 打赏
  • 举报
回复
这不就是个数据过滤的问题吗,有难度?
极客诗人 2021-01-30
  • 打赏
  • 举报
回复
目前均是在代码中写死。 想将2更加灵活的处理,故此一贴,望赐教
免费试听地址:B站搜索JeeGit观看《JeeSite4.x数据权限教程》、《JeeSite1.2.7系列基础教程》、《JeeSite4.x系列基础教程》等相关课程! 郑重声明:购课前,请认真听完第一章 课程简介 建议实战人群直接听:第九章、第十章 学生人群、刚入门:全听       数据权限主要讲解内容包含第一章 课程简介31.1 课程目标31.2 适用人群31.3 课程简介31.4 环境要求31.5 课程知识点大全31.6 课程售价31.7 购课声明31.8 资源清单31.9 售后方式41.10 讲师介绍4第二章 权限基础42.1 权限模型概述4第三章 JeeSite权限管理模型123.1 JeeSite1.2.7 权限管理模型123.2 JeeSite4.x 权限管理模型123.3 JeeSite4.x权限设计的扩展13第四章 用户管理144.1 JeeSite4.x内置用户类型144.1.1 用户管理思路144.1.2 网站会员、员工、单位、个人登录视图配置154.2 用户数据权限类型164.3实战训练、调试、日志查看16第五章 机构管理16第六章 角色管理186.1 JeeSite4.x角色管理概述186.2 JeeSite4.x越级授权与菜单权重186.3 JeeSite4.x 越级授权可能存在的隐患极其解决方案196.4用户表如何区分非管理员、系统管理员、二级管理员206.5 角色权限注意事项206.6 角色授权数据范围使用注意事项216.7 为何用户不设置员工权限无效?236.8 岗位管理与角色分类的岗位分类与角色分类有何区别?23第七章 二级管理员23第八章 系统管理员238.1 系统管理员238.2 总结:何时使用超级管理员、系统管理员、二级管理员?23第九章 Jeesite数据权限调用239.1 JeeSite4.x数据调用基础239.2 JeeSite4.x 实现数据权限推荐解决方案249.3多数源模式下数据权限bug简易解决方案249.4 JeeSite4.x 自定义扩展数据权限249.5支持全球地区、全球企业、全球机构、全球部门授权24第十章 JeeSite数据权限实战2410.1 案例一2410.2 案例二2410.3 案例三2510.4 案例四2510.5 案例五25第十一章 JeeSite4.x常见问题解答251.1数据权限管理的代码会公开吗,购买了能看吗?251.2 JeeSite数据权限教程是Thinkgem录制的吗?25第十二章 参考阅读2612.1、JeeSite官方文档2712.2、美国国家标准与技术研究院2712.3、中国国家标准化管理委员会2712.4、ITSEC欧洲安全评价标准2812.5、百度学术2812.6、开源框架2912.6.1 JeeSite2912.6.2 Casbin2912.6.3 Eladmin2912.6.4 Spring-boot-demo2912.6.5 Jeeplatform3012.6.6 Pig3012.6.7 Jeecg-boot3012.6.8 Jfinal3012.6.9 Guns3112.6.10 Zheng3112.6.11 Cloud-Platform3112.7 博文资源31

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧