数据授权的逻辑
2,442次浏览
编辑于2013年08月06日 19:50:29
数据授权的需求是很简单的。以销售订单为例,举例说明下,比如:
需求1、新增订单时,要求只能选到特定的客户。
需求2、查看时,要求只能看到自己创建的订单,或者自己部门的订单。
实现上第一个需求:就是在“基础资料权限”页签上,进行数据范围的设置。也就是,对引用的基础资料进行范围限制。应该达到的效果:
A,新增时,F8选择客户,只能选到特定的客户
B,列表过滤时,F8选择客户,只能选择到特定的客户
在这里,我们知道列表是有个比较麻烦的处理,就是选择客户如果是大于或者小于这样的比较符,或者其他通配符,那么展示的列表是否需要处理下呢,也即是说,他新增时选不到某个客户,查询时也看不到呢?
需要把这个数据范围的设置条件,跟这个过滤条件拼接起来?
按一般的理解,列表查询时,需求1是必然要满足的。不过,我也不敢就确认,也许有人会反对这一条。
实现第二个需求:就是在“功能权限”页签上,进行数据范围的设置。也就是对查询的当前单据对象,进行范围限制。也就是在过滤条件基础上,再强制附加这个数据范围过滤。
如果是报表实现第二个需求,估计要更麻烦,因为可能涉及到多个业务对象拼接起来的,还有计算列,一系列的需要处理。
如果做得好,当然需要变量,比如用户自己输入的订单,比如用户的某个属性(如用户对应员工所在部门)与单据上某个字段或者基础资料的属性进行比较。