以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于可视化授权的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24918) |
||||
-- 作者:ljz -- 发布时间:2012/10/26 15:28:00 -- 关于可视化授权的问题 For Each t As Table In Tables t.Visible = True t.AllowEdit = True For Each c As Col In t.Cols c.Visible = True c.AllowEdit = True Next Next If User.Group <> "厂办" Then Tables("表权限").Visible = False Else Tables("表权限").Visible = True End If quanx = "\'" & quanx.Replace(",", "\',\'") & "\'" For Each dr As DataRow In DataTables("表权限").Select("权限 in (" & quanx & ")" ) If dr.IsNull("列名") Then Tables(dr("表名")).Visible = Not dr("不可见") Tables(dr("表名")).AllowEdit = Not dr("不可编辑") Else Dim nms() As String = dr("列名").Split(",") For Each nm As String In nms Tables(dr("表名")).Cols(nm).Visible = Not dr("不可见") Tables(dr("表名")).Cols(nm).AllowEdit = Not dr("不可编辑") Next End If Next
如果是一个用户(如张2)有多个角色那么以上涂色的代码得到的“限制权限”的并集,即用户的权限小了。了,如何得到的是“限制权限”的交集,使用户的权限范围应该是变大。请教高手如何实现。
|
||||
-- 作者:yyzlxc -- 发布时间:2012/10/26 15:38:00 -- 代码的本意是限制权限,所以,角色越多,权利越小。楼主被标题误导了,名称应改为可视化限权可能更贴切。 |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/26 15:52:00 -- 嗯嗯,楼上正解。 如果是设置权限的话,应该是全部不可见不可编辑,然后逐步扩展权限。 |
||||
-- 作者:ljz -- 发布时间:2012/10/26 16:05:00 -- 以下是引用lin_hailun在2012-10-26 15:52:00的发言:
嗯嗯,楼上正解。 如果是设置权限的话,应该是全部不可见不可编辑,然后逐步扩展权限。 我也想过,但不会写代码。建议狐爸弄一个逐步扩展权限的例子,并把《目录树形式的授权》改为《目录树形式的限权》 |
||||
-- 作者:shenyl0211 -- 发布时间:2012/10/26 21:28:00 -- 权限和限权是一回事,只是被动式和主动式。是扩大还是缩小,要看具体的情况。以下是我权限缩小的完整代码,希望对你有帮助:
在AfterOpenProject事件中: Forms("用户登录").Open() |
||||
-- 作者:lin_hailun -- 发布时间:2012/10/27 12:00:00 -- 呵呵,看看这个项目,希望可以帮到你。 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=5&ID=23959 [此贴子已经被作者于2012-10-27 12:00:00编辑过]
|