Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Rossi am 28.11.06 - 17:08:08
-
Hallo Experten,
in meiner Urlaubsdatenbank habe ich folgende funktion um die Rolle des jeweiligen Benutzres ab zu fragen
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Dim kabt As Boolean
Dim PAbteilung As String
kabt = False
Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry(session.UserName)
PAbteilung = "[" & Trim(source.FieldGetText("Abt")) & "]"
Forall r In entry.Roles
If PAbteilung = r Then
kabt = True
Exit Forall
End If
End Forall
If kabt = False Then
Continue=False
Msgbox "Wählen Sie Bitte die korrekte Abteilung aus!!",64,"Eingabeprüfung"
Exit Sub
End If
Mein Problem ist folgendes:
Wie kann ich die jeweiligen Rollen für eine Personengruppe abfragen???
-
Nun, ganz einfach: Statt
Set entry = acl.GetEntry(session.UserName)
fragst Du ganz einfach die Gruppe ab:
Set entry = acl.GetEntry(StringNameDerInterssierendenGruppe)
Ich möchte aber wetten, dass Du die Frage einfach falsch gestellt hast: Dein User ist in der ACL nicht namentlich aufgeführt, und Du willst jetzt seine Rollen herausfinden ...
Zwei Wege als erster Vorschlag:
Über NotesSession.UserGroupNameList ermittelst Du die Gruppennamen, zu denen der aktuelle User gehört. Darüber iterierst Du und prüftst die ACL entsprechend ab.
Performanter und eleganter: Ein Evaluate über @UserNamesList, daraus filterst Du dann die Rollen.
Bernhard
-
Hallo Bernhard,
ich nehme mal an, deine Lösung verwenden zu dürfen, ohne vorher Rossis Frage erneut stellen zu müssen. ;D
Grüße und Danke
Paul
-
Da das eh Allgemeinwissen ist und sowieso: Sehr gerne, Paul! Dafür schreiben wir ja sowas hier hinein ;)
Bernhard