Lotus Notes中特定角色中的所有用户名

时间:2013-07-18 11:48:24

标签: lotusscript

我需要获取特定角色的所有用户名,以便我能够向拥有该角色访问权限的所有用户发送邮件。我怎样才能完成这项任务?

我看到了这个链接,

How do I get all users who have a specified role?

没有其他方法可以获得可以在SendTo中使用的所有有效用户名吗?没有这个问题?虽然我没有尝试过NotesACL。我是Lotus Notes Development的新手。

1 个答案:

答案 0 :(得分:6)

如果您对ACL条目的外观有点影响,那么您应该能够获得一个好的解决方案。以下代码收集ACL中具有特定角色的所有条目仅接受PersonPerson group类型的条目。

Function GetRoleMembers(roleName As String) As String
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    Dim sMembers As String 
    Set db = session.CurrentDatabase
    Set acl = db.ACL
    sMembers = ""
    Set entry = acl.GetFirstEntry
    While Not ( entry Is Nothing )
        If entry.IsRoleEnabled( roleName ) And entry.IsPerson Then
            sMembers = sMembers + entry.Name & ","
        End If
        Set entry = acl.GetNextEntry( entry )
    Wend
    GetRoleMembers = sMembers
End Function

函数返回具有给定角色的所有人员和组的逗号分隔列表。您可以使用

测试此功能
Print GetRoleMembers("[Test]")

确保将要发送电子邮件的用户分配为PersonPerson group。您可以在ACL中设置用户类型

enter image description here