The following function returns a List of Names (users) given a comma-separated-value string of levels: 0-No Access, 1-Depositor… 6-Manager
e.g: Levels = “1,2,3,4” or “4,5,6” or “5”
The users having one of these access levels are returned in a list.
Function getNamesByLevels(Levels As String) As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim aclEntry As NotesACLEntry
Dim userType As Integer
Dim namesList() As Variant
Dim currUserNdx As Integer
Set db = session.CurrentDatabase
Set acl = db.acl
Set aclEntry = acl.GetFirstEntry
currUserNdx = -1
While Not aclEntry Is Nothing
If InStr(Levels, CStr(aclentry.Level)) >= 1 Then
userType = aclentry.Usertype
If userType=1 Then ''Person only
currUserNdx = currUserNdx + 1
ReDim Preserve namesList(currUserNdx) As Variant
namesList(currUserNdx) = aclentry.Name
End If
End If
Set aclentry = acl.GetNextEntry(aclentry)
Wend
getNamesByLevels = namesList
End Function