3

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

我看到了这个链接,

如何获取具有指定角色的所有用户?

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

4

1 回答 1

6

如果您对 ACL 条目的外观有一点影响,那么您应该能够获得一个好的解决方案。以下代码收集 ACL 中具有特定角色的所有条目,仅接受类型为Person或的条目Person 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 中设置用户的类型

在此处输入图像描述

于 2013-07-18T12:36:25.020 回答