系统里通过user name和user group对人员进行分组授权,如果再多一级咋办?
比如一个法人组织内xxx(user name)负责录入,他属于sss分公司(user group),通过授权她可以编辑自己录入的资料,查看同组范围内其他人录入的资料。法人组织的管理者mmm可以查看所有分公司(user group)录入的资料。
现在系统要变成一个集团使用。集团里面有多个法人组织,每个法人组织有多个分公司,每个分公司有多个录入人员。同样的授权理念,录入人员只能看见自己分公司的资料,法人组织管理者只看本组织内资料,集团管理者能看见集团内所有法人组织的资料。
要如何改变分组呢?
多年前的疑问,准备下手时又迷茫了,请老师进一步解惑。通过用户权限设置加载,在表事件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
现增加项目部分组,隶属于签订单位列中的某分公司。我如何使用用户分组设置权限呢。一个用户只有一个分组。要达到的效果是项目部组的人员只能加载本项目部的数据,分公司可以加载名下各个项目部的数据,管理层可以加载所有分公司的数据
假设签订单位存储的内容和分组一致
Dim fl As String = "签订单位 = '" & User.Group & "'"
改为
Dim fl As String = "签订单位 = '" & User.Group & "' or 签订单位 like '" & User.Group & "_%'"