本帖最后由 qtcxc 于 2019-8-27 17:15 编辑
用活字格已经过了大半年了,一边用一边学,期间遇到了各种各样的问题大部分都通过官方的技术支持解决,也有很多是通过论坛中格友们分享的各种帖子获取灵感得到启发解决。
所以一直来都有想给社区贡献一点东西的想法,但是迟迟没有做(主要是手上没货)。
今天工程还在赶制中,任务已经安排在不同的人身上各自负责各自的模块,我负责的部分暂时告一段落,在等待同事的模块完成的空隙抽点时间把这个想法付诸行动,能拿点什么分享呢?目前工程很多业务逻辑都比较特殊,其它行业也不一定用得上,所以挑一个相对基础的功能“基础权限管理模型”来分享。
可能有格友会问,活字格不是集成有权限管理功能吗,你的“基础权限管理模型”又有什么用呢?
其实,活字格自带的权限管理功能还是比较全面的,对于一般的公司边开发边用都是能满足需求的,但是自带的权限管理功能跟程序功能是深度耦合的,一旦权限变更则需要动用设计器更改程序规则代码来进行调整,调整完成后重新发布工程来实现权限规则变更。工程较小功能较单一的情况下这样做完全没有问题的。
但是当工程稍微大一点,做任何的重新发布动作都是一种风险,需要承担重新发发布可能引起的人为的不可控的风险。出于这种原因,我们需要在活字格现有的权限管理基础上构建一套松耦合的权限管理框架,目的是让程序发布后大部分的权限调整直接在发布后的程序后台完成,尽量不动用设计器修改重新发布。(对于那些要做产品卖的格友这样的诉求就更明显,虽然目前我做的工程不打算拿出去卖)
所以这个框架是针对以上特定要求的人使用的,一般情况下用活字格自带的权限框架就ok了。
已经啰嗦了一大堆,下面正式分享: 先讲思路:
这个问题是初用活字格的时候差不多是1月份的时候在做程序整体架构设计的时候遇到的问题,当时就直接咨询了官方,这是当时发的问题帖子:
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=52986
然后在论坛里面搜到了一个格友也同时遇到了相同的问题:
https://gcdn.grapecity.com.cn/fo ... 80&page=1#pid211509
对设计思路感兴趣的格友通过上面两个帖子基本上可以了解,我就不重新码字了,下面讲一下实现:
延续上面的思路跟胡耀,梁瑞沟通后得到了"获取用户管理角色"的api,为实现提供了基础。因为整个权限体系规划是在功能实现后最后阶段完善的,所以验证了技术可行性和demo测试没问题后就放下了,接下来就是几个月持续的开发工作一直没有时间继续完善这个框架。直到6月份整个程序功能架构搭建完成了,就开始抽空完善这部分权限控制的功能。
下面就按完成后的框架说明现在框架下的设计方法:
1、首先说明,这个权限体系,将活字格原有的”角色“定义为最小”权限“单位即”权限“,分为”菜单类权限“,”模块类权限“,”功能类权限“;
菜单类权限:控制菜单页面是否运行访问使用,每个权限分别跟菜单中的菜单项进行关联,同时跟菜单项设计的页面进行关联;
模块类权限:控制具体模块类页面是否允许使用,每个权限分别跟对应模块的页面进行关联;
功能类权限:控制具体的功能按是否可用,输入栏位是否可输入,业务规则等相关权限,每个权限直接跟对应的按钮,或业务逻辑关联;
这样初步实现权限的松耦合,每个独立的权限只控制自己相关的页面,按钮或功能逻辑。
2、在用户自定义字段中增加”是否角色“字段,新建用户设置”是否角色“为“是”表示该用户为”角色“代替活字格原有的”角色“概念;(为了更方便的按打包好权限的角色快速分配权限给每个操作员)
3、使用"获取用户管理角色"api 实时获取角色列表(权限列表)
附上官方提供的api:
获取角色列表功能.rar
(528.13 KB, 下载次数: 444)
|