我需要获取特定角色的所有用户名,以便能够向所有具有该角色访问权限的用户发送邮件。我将如何完成这项任务?
我看到了这个链接,
没有其他方法可以获取可在 SendTo 中使用的所有有效用户名吗?没有这个问题?虽然我没有尝试过 NotesACL。我是 Lotus Notes 开发的新手。
我需要获取特定角色的所有用户名,以便能够向所有具有该角色访问权限的用户发送邮件。我将如何完成这项任务?
我看到了这个链接,
没有其他方法可以获取可在 SendTo 中使用的所有有效用户名吗?没有这个问题?虽然我没有尝试过 NotesACL。我是 Lotus Notes 开发的新手。
如果您对 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]")
确保为您要发送电子邮件的用户分配了类型Person
或Person group
. 您可以在 ACL 中设置用户的类型