发新话题
打印

[转贴] 一个Access control的例子( 此文章被查看:1307次,被回复:3篇!! )

本主题被作者加入到个人文集中

一个Access control的例子

//This function is simple, so i don't have much explain with it.
//Please do not hesitate to contatct me if you have any questions or suggestions!
Function issue_AccessControl(actionname, actiontype, username)
  ' actionname As String
  ' actiontype As Long
  ' username As String
  ' issue_AccessControl As Boolean
  ' action is Open
  ' record type name is Issue
    REM return TRUE if the user has permission to perform this action. Example:
    REM   If username = "pat" Then
    REM      issue_AccessControl = TRUE
    REM   Else
    REM      issue_AccessControl = FALSE
    REM   End If
                //define
        dim session
        dim resultset
        dim SQLquery

        On Error Resume Next
        userIsAMember = FALSE
        set session = GetSession
        fullname = session.GetUserFullName
        issue_AccessControl = FALSE
        REM Only allow the "OwnerResponsible" to Open an Issue
        If fullname=GetFieldValue("OwnerResponsible").GetValue() Then
                Issue_AccessControl = TRUE
        End If
        REM Only allow the "ProjectTeam" group users to Open an Issue
        If userIsAMember (GetFieldValue("ProjectTeam").GetValue) Then
                Issue_AccessControl = TRUE
        End If
        REM Only allow the CQAdmin group users to Open an Issue
        If userIsAMember("CQAdmin") Then
        Issue_AccessControl = TRUE
        End If
End Function

下面是userIsAMember的定义:
//判断用户是否属于某个特定的组,如果是,则返回true,否则false
Function userIsAMember(groupname)
  ' groupname As String  
  set Session = GetSession
  userGroups = Session.GetUserGroups
  If Not IsArray(userGroups) Then
   UserIsAMember = FALSE
     Else If "" = Join(Filter(userGroups, groupname, TRUE, vbTextCompare)) Then
         UserIsAMember = FALSE
     Else
         UserIsAMember = TRUE
     End If
  End if                                 
End Function



© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

我不会vb



© 本文为 amongSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
Where are we ?

TOP

学习了!



© 本文为 听雨屋檐人SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

回复 #2 among 的帖子

其实语言都是相通的, vbscript我也仅仅把语法看了一遍, 然后用asp写了些动态页面, 至于有多么熟,根本就谈不上, 写起来还有些难度, 但是我能看懂大部分的代码:)      
        //定义部分
        dim session
        dim resultset
        dim SQLquery

        On Error Resume Next
        userIsAMember = FALSE
        set session = GetSession
        //通过session对象取得当前用户的全名
        fullname = session.GetUserFullName
        issue_AccessControl = FALSE
        REM Only allow the "OwnerResponsible" to Open an Issue
        //如果当前用户是issue的owner, 则有权限
        If fullname=GetFieldValue("OwnerResponsible").GetValue() Then
                Issue_AccessControl = TRUE
        End If
        REM Only allow the "ProjectTeam" group users to Open an Issue
        //或者当当前用户属于这个特定的组时,有权限操作
        If userIsAMember (GetFieldValue("ProjectTeam").GetValue) Then
                Issue_AccessControl = TRUE
        End If
        REM Only allow the CQAdmin group users to Open an Issue
        //或当前用户是CQ的管理员, 也有权限
        If userIsAMember("CQAdmin") Then
        Issue_AccessControl = TRUE
        End If

© 本文为 yunshan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题