以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]授權程式碼問題  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124776)

--  作者:ken66
--  发布时间:2018/9/13 15:55:00
--  [求助]授權程式碼問題
\'If User.Type <> UserTypeEnum.User Then \' 如果是开发者或者管理员
\'Return True \'则具备所有权限
\'End If
Dim dt As DataTable = DataTables("Authorize")
Dim dr As DataRow
\'首先判断分组的授权用户是否包括此用户或此用户所属的分组
dr = dt.Find("Group = \'" & args(0) & "\' And Permission Is Not Null" )
\'dr = dt.Find("Group = \'" & args(0) & "\'" )
If dr Is Nothing Then
    MessageBox.show("不存在名為『" & args(0) & "』作業!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("Loginname") = False Then
    Dim nms() As String = dr("Loginname").Split(",")
    For Each nm As String In nms
        If nm = _LoginName Then \'如果授权用户包括登录用户所属的分组或其用户名
            Return True \'返回True
        End If
    Next
End If
\'然后判断权限的授权用户是否包括此用户或此用户所属的分组
If Args(1) = "" Then
    Return False
End If
dr = dt.Find("Group = \'" & args(0) & "\' And Permission = \'" & args(1) & "\'")
If dr Is Nothing Then
    MessageBox.show("不存在名為『" & args(1) & "』權限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("Loginname") = False Then
    Dim nms() As String = dr("Loginname").Split(",")
    For Each nm As String In nms
        If nm = _LoginName Then \'如果授权用户包括登录用户所属的分组或其用户名
            Return True \'返回True
        End If
    Next
End If
Return False

--  作者:有点蓝
--  发布时间:2018/9/13 16:00:00
--  
Dim dt As DataTable = DataTables("Authorize")
Dim dr As DataRow

\'然后判断权限的授权用户是否包括此用户或此用户所属的分组
If Args(1) = "" Then
    dr = dt.Find("Group = \'" & args(0) & "\' And Permission Is Null" )
Else
    dr = dt.Find("Group = \'" & args(0) & "\' And Permission = \'" & args(1) & "\'")
End If

If dr Is Nothing Then
    MessageBox.show("不存在名為『" & args(1) & "』權限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("Loginname") = False Then
    Dim nms() As String = dr("Loginname").Split(",")
    For Each nm As String In nms
        If nm = _LoginName Then \'如果授权用户包括登录用户所属的分组或其用户名
            Return True \'返回True
        End If
    Next
End If
Return False