以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]使用角色进行可视化授权  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21367)

--  作者:yyzlxc
--  发布时间:2012/7/10 13:52: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
Dim ds As DataRow
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each ds In DataTables("授权表").Select("用户组 = \'" & _UserGroup & "\'" )
        If ds.IsNull("列名") Then
            Tables(ds("表名")).Visible = Not ds("不可见")
            Tables(ds("表名")).AllowEdit = Not ds("不可编辑")
        Else
            Tables(ds("表名")).Cols(ds("列名")).Visible = Not ds("不可见")
            Tables(ds("表名")).Cols(ds("列名")).AllowEdit = Not ds("不可编辑")
        End If
    Next
End If


--  作者:blackzhu
--  发布时间:2012/7/10 14:31:00
--  
如果将用户组改成角色  上面的代码可以用.
--  作者:ttzb2000
--  发布时间:2012/7/10 14:56:00
--  

    For Each ds In DataTables("授权表").Select("用户组 = \'" & _UserGroup & "\'" )
将用户组改成用户名后面的改成name,如下

    For Each ds In DataTables("授权表").Select("用户名 = \'" & _UserName & "\'" )
前提你授权表里要有用户名这一列。


--  作者:yyzlxc
--  发布时间:2012/7/11 8:22:00
--  
谢谢各位老师的回复,问题是用户组改成了角色,而且是多值字段;其多值字段如何来读取,还请各位老师指教,谢谢!!
--  作者:blackzhu
--  发布时间:2012/7/11 10:50:00
--  
如果是这样  就不行了.  找找帮助的多值字段的处理方式,可以看看目录树的授权.
--  作者:yyzlxc
--  发布时间:2012/7/11 12:32:00
--  

谢谢blackzhu老师的回复,看来这个问题有点难,先做一个案例再来请教各位老师,谢谢blackzhu老师


--  作者:everybody
--  发布时间:2013/5/8 9:44:00
--  
坐板凳看高手过招