我需要获取特定角色的所有用户名,以便我能够向拥有该角色访问权限的所有用户发送邮件.我怎么能完成这个任务?
我看到了这个链接,
有没有其他方法可以获得可以在SendTo中使用的所有有效用户名?没有这个问题?虽然我没有尝试过NotesACL.我是Lotus Notes Development的新手.
如果您对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
Run Code Online (Sandbox Code Playgroud)
函数返回具有给定角色的所有人员和组的逗号分隔列表.您可以使用测试此功能
Print GetRoleMembers("[Test]")
Run Code Online (Sandbox Code Playgroud)
确保将要发送电子邮件的用户分配到键入Person或Person group.您可以在ACL中设置用户的类型
