以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于用户多层分组授权的疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140722)

--  作者:wymoonwalker
--  发布时间:2019/9/12 10:14:00
--  关于用户多层分组授权的疑问
系统里通过user name和user group对人员进行分组授权,如果再多一级咋办? 
比如一个法人组织内xxx(user name)负责录入,他属于sss分公司(user group),通过授权她可以编辑自己录入的资料,查看同组范围内其他人录入的资料。法人组织的管理者mmm可以查看所有分公司(user group)录入的资料。
现在系统要变成一个集团使用。集团里面有多个法人组织,每个法人组织有多个分公司,每个分公司有多个录入人员。同样的授权理念,录入人员只能看见自己分公司的资料,法人组织管理者只看本组织内资料,集团管理者能看见集团内所有法人组织的资料。
要如何改变分组呢?

--  作者:有点蓝
--  发布时间:2019/9/12 11:08:00
--  
分组设置成这样:
法人组织
法人组织_某分公司
法人组织_某分公司_某权限


--  作者:wymoonwalker
--  发布时间:2019/9/12 14:35:00
--  
突然间明白了,多谢!@有点蓝
--  作者:wymoonwalker
--  发布时间:2024/10/11 10:09:00
--  
 多年前的疑问,准备下手时又迷茫了,请老师进一步解惑。通过用户权限设置加载,在表事件befordload中代码如下。
If User.Group  <> "管理层"
    Dim fl As String = "签订单位 = \'" & User.Group & "\'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then \'如果没有包括雇员条件
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

现增加项目部分组,隶属于签订单位列中的某分公司。我如何使用用户分组设置权限呢。一个用户只有一个分组。要达到的效果是项目部组的人员只能加载本项目部的数据,分公司可以加载名下各个项目部的数据,管理层可以加载所有分公司的数据


--  作者:有点蓝
--  发布时间:2024/10/11 10:36:00
--  
假设签订单位存储的内容和分组一致

Dim fl As String = "签订单位 = \'" & User.Group & "\'"
改为
Dim fl As String = "签订单位 = \'" & User.Group & "\' or 签订单位 like \'" & User.Group & "_%\'"

--  作者:wymoonwalker
--  发布时间:2024/10/11 14:29:00
--  
测试过了,就是这个效果,非常感谢