本帖最后由 qtcxc 于 2021-8-27 09:02 编辑
我在这里补充需要这样功能的用户故事:
故事要从很久很久以前讲起....
在购买活字格初期,刚开始用活字格设计公司的软件产品时公司的架构相对简单,只有独立的一个实体,当时用的是4.0,只要实现"用户-角色-权限"这样一套权限体系基本就满足了公司的权限控制需求.也是通过这样的权限体系构建了目前整个公司的系统的.
但是随着公司的业务发展,公司从一个单一实体,慢慢的根据公司业务模式的变化变成了多个实体有层级的组织架构,目前的结构蜕变为 我上面描述的"总公司-省级子公司(规划)-城市子公司-行政区子公司-门店"这样的架构.
因为以上架构的变化所以在规划重构现有的系统来配合这个组织架构实现权限架构,在做的过程中其实是有一些方法能够实现一部分的控制,就是自己重新设计一套组织表+与组织管理的用户字表,然后封装通用的服务器端命令来判断组织权限.判断完再执行操作.这种做法对按钮,菜单,页面等能做到控制,基于这种控制如果不同的人需要对一个统计表统计不同的数据,则需要将相同的页面拆分成多个或写不同的数据查询逻辑,然后根据判断返回的结果调用不同的逻辑取数据.能够达到目的,但是逻辑复杂工作量会比较大,而且考虑到系统经常要迭代如果通过页面拆分(其实已经这样做了)每次报表要增加字段修改字段或者调整跟数据无关的算法等所有同类页面都要修改一遍,担心修改过程遗漏是一个问题,最担心的是不同页面万一在不同的时间段做了修改调整,最终这些页面逻辑是不是一致的没办法很方便的核对出来,需要额外的测试之外,还需要人工一个个命令肉眼检查,非常困难;
所以在想有没有办法独立控制一套权限的调取规则,而页面逻辑只要按照统一的逻辑书写(相对简单不需要考虑数据调取逻辑),配合数据调取权限规则来控制同一个页面相同的查询命令调取权限范围内的数据的思路,简化程序逻辑的复杂度也方便维护迭代.
所以开始琢磨活字格自带的数据库行和字段权限的能力,在研究的过程中发现这一层应该就是为了解决上述不同人在相同页面相同数据查询规则下呈现不同权限下的结果而存在的.
只是目前看到的结果是仅仅有角色层面的控制,无法满足需要根据不同组织级别显示数据的需求.
举个例子:
门店下面分普通员工 和 店长,普通员工只给看自己相关的数据,这个自己可以是自己创建的客人,也可以是自己负责跟进的客人(自己负责跟进的客人可以是一个自定义的用户字段,由店长指派),这个诉求目前活字格现在的数据权限控制已经能够通过角色,数据创建者,自定义的用户字段满足;
然后就是门店往上走 会有
区域分公司 需要可以查看自己所在区域内所有门店的数据;
市级分公司 需要可以查看自己所在市内所有区域所有门店的数据;
省级分公司 需要可以查看自己所在省份所有市,所有区域,所有门店的数据;
总公司 需要可以查看所有省份,所有市,所有区域,所有门店的数据;
以上是只对查看方面描述的场景,针对数据的修改删除 也会有一套不同层级的规则,如果在数据层能控制则谢逻辑的时候就不需要考虑那么多场景每个地方都写判断逻辑或者拆分页面来实现
|