以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请看看可视化授权代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8058)

--  作者:cxabc123
--  发布时间:2010/9/2 9:22: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
For Each dr As DataRow In DataTables("授权表").DataRows
    If dr("用户名")=_UserName Then
        If dr.IsNull("列名") Then
            Tables(dr("表名")).Visible = Not dr("不可见")
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
        Else
            Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End If
    End If
Next
If  _UserGroup = "管理员"  Then
    Tables("授权表").Visible = True
Else
    Tables("授权表").Visible = False
End If
Tables("数据加载").Visible = False

 

这是我写的一段可视化授权代码,但是就是不起作用,不知道哪儿有问题,请大家看看,实在是没辙了,以管理员组登录时,授权表不可见。

[此贴子已经被作者于2010-9-2 9:22:50编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/9/2 9:25:00
--  
做简单例子上传说明
--  作者:cxabc123
--  发布时间:2010/9/2 9:27:00
--  
作例子太费事了,我试试
--  作者:cxabc123
--  发布时间:2010/9/2 9:30:00
--  
从理论上来说上面的代码应该是没有问题的,我有一点不明白,就是自定义登录时,首先要设置一个系统的默认用户才行,这样的话,究竟是默认用户登录,还是自定义的用户登录,我想问题是不是出在这个地方
[此贴子已经被作者于2010-9-2 9:30:12编辑过]

--  作者:cxabc123
--  发布时间:2010/9/2 9:42:00
--  
我通过测试,自定义用户登录时系统的默认用户在后台登录。我是这样测试的,发布时取消默认用户,这样登录时出现的登录窗口可以以开发者的身份登录,登录之后切换用户,换到自定义的用户,但是功能和开发者用户的功能没有什么区别,从道理上来说,应该是自定义用户不具备开发者的有些功能。老大你的看法呢?
--  作者:狐狸爸爸
--  发布时间:2010/9/2 9:52:00
--  

发布的程序,不管是不是开发者,都不具备开发功能。

 

另外你完全理解错误,自定义用户管理和普通的代码一样,并没有什么特殊,不要以为自定义的用户管理代替了系统的用户管理后,系统的用户管理会失效。

系统的用户管理始终生效,foxtable自身使用的始终是系统的用户,而不是你的自定义用户,你的用户只适合你自己编写的代码。

 


--  作者:cxabc123
--  发布时间:2010/9/2 9:53:00
--  

If  _UserGroup = "管理员"  Then
    Tables("授权表").Visible = True
Else If User.Type=UserTypeEnum.Developer Orelse User.Type=UserTypeEnum.User Then
    Tables("授权表").Visible = True
Else
    Tables("授权表").Visible = False
End If

用这样的办法,项目发布后就可以使“授权表”以管理员身份登录时显示出来,但是不论以自定义的哪一个用户登录都将显示出来,又达不到要隐藏的目的。而用下面一段代码就不能使“授权表”显示出来,而是隐藏了

If  _UserGroup = "管理员"  Then
    Tables("授权表").Visible = True
Else
    Tables("授权表").Visible = False
End If

[此贴子已经被作者于2010-9-2 9:57:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/9/2 9:57:00
--  

你大概是自己把自己转晕了,我也被你搞晕了,你自己MessageBox.show(_UserGroup)看看吧。

 


--  作者:cxabc123
--  发布时间:2010/9/2 9:58:00
--  
用这种办法,不显示任何结果,我已经查过了,没辙了,才来一遍又一遍的来麻烦你的,要不然不会这样的
[此贴子已经被作者于2010-9-2 9:59:01编辑过]

--  作者:cxabc123
--  发布时间:2010/9/2 10:01:00
--  
我想应该是系统的问题,逻辑上没有处理好,因为切换用户时也不能引发loadusersetting事件
[此贴子已经被作者于2010-9-2 10:01:15编辑过]