我需要获取特定角色的所有用户名,以便我能够向拥有该角色访问权限的所有用户发送邮件。我怎样才能完成这项任务?
我看到了这个链接,
How do I get all users who have a specified role?
没有其他方法可以获得可以在SendTo中使用的所有有效用户名吗?没有这个问题?虽然我没有尝试过NotesACL。我是Lotus Notes Development的新手。
答案 0 :(得分: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]")
确保将要发送电子邮件的用户分配为Person
或Person group
。您可以在ACL中设置用户类型