以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限控制  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152863)

--  作者:outcat
--  发布时间:2020/7/23 21:43:00
--  权限控制
我是一个以导航窗口为主界面  NavBar1  包含系统维护,业务管理、财务管理、库房管理
然后做了一个用户权限表,记录有不同的用户 拥有不同的权限  ,然后与这块怎么关联呢,请教老师


--  作者:有点蓝
--  发布时间:2020/7/23 22:17:00
--  
导航窗口afterload事件获取用户权限表权限,根据权限显示和隐藏对应的项目
--  作者:outcat
--  发布时间:2020/7/24 9:49:00
--  
If _UserName <> "Admin"
    e.Form.Controls("NavBar1").NavPages(0).Visible = False
    e.Form.Controls("NavBar1").NavPages(3).Visible = False
End If

老师,我用上面这个具体的用户测试写在afterload里,可以起到效果,下面的代码,我从用户权限表里取值的用户,起不到权限控制的作用,请老师看一下,哪里出问题了

\'\'0,系统维护;1,系统管理;2,客户管理;3,财务管理;4,业务管理
Dim users As List(Of String)
users = DataTables("用户权限表").SQLGetValues("用户", "权限类别 = \'系统维护\'")
For Each user As String In users
    If user IsNot Nothing Then
        e.Form.Controls("NavBar1").NavPages(0).Visible = True
    Else
        e.Form.Controls("NavBar1").NavPages(0).Visible = True
    End If
Next

Dim user1s As List(Of String)
user1s = DataTables("用户权限表").SQLGetValues("用户", "权限类别 = \'业务管理\'")
For Each user1 As String In user1s
    If user1 IsNot Nothing Then
        e.Form.Controls("NavBar1").NavPages(4).Visible = True
    Else
        e.Form.Controls("NavBar1").NavPages(4).Visible = True
    End If
Next

Dim user2s As List(Of String)
user2s = DataTables("用户权限表").SQLGetValues("用户", "权限分组 = \'员工信息\'")
For Each user2 As String In user2s
    If user2 IsNot Nothing Then
        e.Form.Controls("员工信息").Visible = True
    Else
        e.Form.Controls("员工信息").Visible = False
    End If
Next

Dim user3s As List(Of String)
user3s = DataTables("用户权限表").SQLGetValues("用户", "权限分组 = \'往来单位\'")
For Each user3 As String In user3s
    If user3 IsNot Nothing Then
        e.Form.Controls("往来单位").Visible = True
    Else
        e.Form.Controls("往来单位").Visible = False
    End If
Next



--  作者:有点蓝
--  发布时间:2020/7/24 9:55:00
--  
e.Form.Controls("NavBar1").NavPages(0).Visible = (DataTables("用户权限表").sqlfind( "权限类别 = \'系统维护\' and 用户=\'" & user.name & "\'") isnot nothing)