以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]加载合法数据的办法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191411)

--  作者:chnfo
--  发布时间:2024/4/15 14:15:00
--  [求助]加载合法数据的办法
目前系统里很少做有关数据权限过滤的设置。
在实际管理过程中,可能有五花八门的过滤条件。
例如请假,本人填写的请假单,在没有提交之前,上级以及再往后的人是看不到的;上级没有审核提交之前,后续的人也是看不到的
比如门店,销售人员只能看到自己的;店长只能看本店的,总部的人可以看所有的。

解决办法,我考虑有两种方式
(1)用户登录以后,只加载在权限范围内的数据,这样,无论以什么条件筛选,最大的可视范围就是加载出来的数据。这种控制手段最有效
(2)用户登录以后,可以加载所有数据,但通过权限条件,过滤出权限范围内的数据。但这样一来,用户如果点击了工具栏按钮的取消筛选或切换按钮,可能就会把他不应看到的数据显示出来。而且这种方法,对于持续增长的数据(比如生产型企业),全部加载再过滤可能效率会有问题

如果用方案一,该如何加载?
如果用方案二,如何让用户点击工具栏的取消筛选等按钮时,仍然保持初始筛选条件有效(这个可以在取消筛选里设置代码,但如果表太多,那就工作量超大了)

是否还有其它方式呢?

--  作者:有点蓝
--  发布时间:2024/4/15 14:19:00
--  
参考:http://www.foxtable.com/webhelp/topics/2253.htm,先把权限管理这章的帮助全部过2遍
--  作者:chnfo
--  发布时间:2024/4/21 18:08:00
--  
有些应用场景,例如工程项目中,某个施工标段被监理标段管,也被某些业主代表管,所以,这时候就会设置一个表(例如管理关系)来记载它们的关系,即标段ID、监理标段ID、业主代表处ID

然后具体的业务数据,例如进度数据、计量数据,都标明它是哪个标段的,(如果还把监理标段ID、业主代表处ID冗余进来,也可以,但业务表很多,这样处理感觉有点麻烦了)

然后某个监理登录时,就要通过进度表.标段ID = 管理关系.标段ID 的关联关系,获得监理标段ID,再然后通过user.group = 所获得的监理标段ID,来加载他所管理的这些标段的数据

目前有没有其它的方法来实现,还是说必须各个业务数据都要设置监理标段ID、业主代表处ID数据列?

--  作者:有点蓝
--  发布时间:2024/4/21 22:30:00
--  
必须各个业务数据都要设置监理标段ID、业主代表处ID数据列