我需要获取特定角色的所有用户名,以便能够向所有具有该角色访问权限的用户发送邮件。我将如何完成这项任务?
我看到了这个链接,
没有其他方法可以获取可在 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 中设置用户的类型
