Tipps & Tricks - Rechteabhängige Anzeige von Elementen
Um
Schaltflächen,
Gruppierungen oder
Raster abhängig
von der Berechtigung eines Benutzers anzuzeigen, stehen in Velocity Methoden zur Verfügung,
die in der
Bedingten Anzeige
verwendet werden können. Mit diesen Methoden können Informationen auch mit einem
VTL-Include-Element rechteabhängig
angezeigt werden. Aktivieren Sie die
Experten-Optionen,
damit alle Dialoge, die in diesem Beispiel genannt werden, erreichbar sind.
Velocity- und Anwendungsentwicklungs-Kenntnisse sind für diesen Beitrag von Vorteil.
Ermitteln Sie zunächst die GUIDs aller
Benutzergruppen oder Rollen,
die berechtigt werden sollen. In der
Benutzerverwaltung
können die Details, in denen auch die GUID enthalten ist, mit dem
Hauptmenü Ansicht / Details
eingeblendet werden, sobald ein Benutzerobjekt markiert ist. Die GUID kann dann markiert und
in die Zwischenablage kopiert werden. Die so ermittelten GUIDs werden in Form eines Arrays im Velocity-Kontext definiert.
#set($groupGuids = ['GUID1','GUID2', … 'GUIDn'])
Im zweiten Schritt werden alle Mitgliedschaften des angemeldeten Benutzers ermittelt.
#set($userMembership = $Portal.OrgStructure.getMembershipSets($User))
Mit der Methode ".intersects()" kann geprüft werden, ob der Benutzer in einen der berechtigten
Gruppen oder Rollen Mitglied ist. Die Methode liefert "true" bei mindestens einer Mitgliedschaft
und "false" bei keiner Übereinstimmung zurück. Dies kann in einer IF-Bedingung geprüft werden.
#if($userMembership.intersects($groupGuids) == true)
## Anzeigeinformation oder Code
#end
Das folgende Beispiel prüft, ob der angemeldete Benutzer Mitglied der
Administratoren-Benutzergruppe ist und zeigt diese Information an.
Mit der Methode .isEmpty() kann geprüft werden, ob der Benutzer generell Mitgliedschaft
an einer Gruppe bzw. Rolle besitzt oder ob dieser keiner Gruppe bzw. Rolle zugeordnet wurde.
#set($groupGuids = ['EF16F15EDA8562E19D7CD56BF2E43001F119193C'])
#set($userMembership = $Portal.OrgStructure.getMembershipSets($User))
#if($userMembership.intersects($groupGuids) == true)
Der angemeldeter Benutzer ist Mitglied der Gruppe "Administratoren"
#else
Der angemeldeter Benutzer ist nicht Mitglied der Gruppe "Administratoren"
#end
#if($userMembership.isEmpty() == true)
Der angemeldete Benutzer ist keiner Gruppe/Rolle zugeordnet
#end
Wenn Sie den Editor für die
Bedingte Anzeige
das erste Mal öffnen, ist dort bereits eine Variable mit Bezug auf das aktuelle Element (Schaltfläche, Gruppierung oder Raster)
vordefiniert.
#set($show_simplegroup155043BA = true)
Die Variable setzt sich aus "$show_" gefolgt vom name-Attribut des Elements zusammen.
Wird der Wert auf "false" gesetzt, wird das Element serverseitig nicht erzeugt.
Bei "true" wird das Element erstellt und angezeigt. Das folgende Beispiel zeigt eine Gruppierung nur an,
wenn der angemeldete Benutzer Mitglied der Benutzergruppe "Benutzer" ist.
#set($show_simplegroup155043BA = false)
#set($groupGuids = ['6AA80844C3C99EF93BF4536EB18605BF86FDD3C5'])
#set($userMembership = $Portal.OrgStructure.getMembershipSets($User))
#if($userMembership.intersects($groupGuids) == true)
#set($show_simplegroup155043BA = true)
#end
Sollen Schaltflächen, Gruppierungen oder Raster nur für anonyme Benutzer angezeigt werden,
kann der aktuell angemeldete Benutzer mit der Methode ".isAnonymous()" geprüft werden.
#set($show_simplegroup9238DAD3 = false)
#if($User.isAnonymous())
#set($show_simplegroup9238DAD3 = true)
#end