以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于窗口菜单的权限控制 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108015) |
||||
-- 作者:scofields -- 发布时间:2017/10/14 12:13:00 -- 关于窗口菜单的权限控制 老师,我参照目录树授权管理的界面,做了一个权限控制,如果向下面一样控制权限,很麻烦,有没更简便的方法? If Functions.Execute("ShouQuan","信息识别组","新增") Then e.Form.Strips("主菜单").Items("新增").enabled = True ‘好像这样写起不到控制效果。 End If 菜单里的所有名称也就是MenuItems名称 [此贴子已经被作者于2017/10/14 12:13:47编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/10/14 14:00:00 -- 1、只能这样控制 2、代码测试没有问题,检查授权函数返回的结果是否正确
|
||||
-- 作者:scofields -- 发布时间:2017/10/14 15:04:00 -- 内部函数Shouquan返回结果都是true,这个代码怎么测试都对窗口菜单无效,不知道哪出问题了。不过对窗口标准控件却是有效的,蓝老师,帮忙看一下到底哪出问题了。 |
||||
-- 作者:有点蓝 -- 发布时间:2017/10/14 15:47:00 -- 请上传实例测试 |
||||
-- 作者:scofields -- 发布时间:2017/10/14 16:15:00 -- 项目文件太大,不方便上传啊,蓝老师看一下示例的的自定义函数ShouQuan有没有哪有问题? If User.Type = UserTypeEnum.User Then \' 如果是开发者或者管理员 Return True \'则具备所有权限 End If Dim dt As DataTable = DataTables("授权") Dim dr As DataRow \'首先判断分组的授权用户是否包括此用户或此用户所属的分组 dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 Is Null" ) If dr Is Nothing Then MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return False End If If dr.IsNull("用户") = False Then Dim nms() As String = dr("用户").Split(",") For Each nm As String In nms If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名 Return True \'返回True End If Next End If \'然后判断权限的授权用户是否包括此用户或此用户所属的分组 If Args(1) = "" Then Return False End If dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 = \'" & args(1) & "\'") If dr Is Nothing Then MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return False End If If dr.IsNull("用户") = False Then Dim nms() As String = dr("用户").Split(",") For Each nm As String In nms If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名 Return True \'返回True End If Next End If Return True |
||||
-- 作者:有点蓝 -- 发布时间:2017/10/14 16:25:00 -- 如果能够返回true就不是函数的问题 新建项目做例子,不是上传整个项目
|
||||
-- 作者:scofields -- 发布时间:2017/10/14 17:00:00 -- 这是示例文件哦
[此贴子已经被作者于2017/10/14 17:01:38编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/10/14 17:11:00 -- 应该这样用: e.Form.Strips("主菜单").Items("新增").enabled = Functions.Execute("ShouQuan","信息识别组","新增")\'好像这样写起不到控制效果. |
||||
-- 作者:scofields -- 发布时间:2017/10/14 17:59:00 -- 蓝老师,这种如何控制啊? 此主题相关图片如下:1234.png |
||||
-- 作者:dearhuige -- 发布时间:2017/10/30 11:41:00 -- 怎么打开这个文件?
|