Info der Session
Wertauflöser - Kurzfassung
Zweck: Gibt das "Session Information"-Objekt für die aktuelle Sitzung zurück.
Der Info der Session-Wertauflöser gibt eine Entität des Typs "Session Information" zurück, in dem Informationen zur aktuellen Sitzung bzw. einem durch die Ausführen als-Ereignisaktion temporär veränderten Anmeldekontext enthalten sind.
►HINWEIS◄ Über das Ereignis "Zusätzliche Sitzungsdaten initialisieren" (s. Anmeldung (Ereignisse)) kann die Map im Feld additionalData mit spezifischen zusätzlichen Inhalten für die Sitzung angereichert werden.
Innerhalb einer Sitzung kann auf das "Session Information"-Objekt nur lesend zugegriffen werden.
Die folgende Tabelle gibt den Inhalt des "Session Information"-Objekts nach Themenbereichen gegliedert wieder. Dabei sind auch Informationen enthalten, auf die über andere Wertauflöser der Kategorie Sitzungsbasiert (Wertauflöser) direkt zugegriffen werden kann.
Zusammen mit den unmittelbaren Feldinhalten listet die Tabelle (mit hellblauer Schattierung) auch Inhalte auf, die unter vordefinierten Schlüsseln in einer Map für "Zusätzliche Sitzungsdaten" (im Feld additionalData) zu finden sind.
Betreff |
Feldname / Map[ Schlüssel ] |
Datentyp |
Inhalt |
Entität |
|||
Session Information |
id |
Long |
Interne ID des "Session Information"-Objekts |
formal vorhanden aber nur mit Standardwert belegt: created (null), creatorId (0), ownerId (0), partialLoaded (false) |
|||
Anmeldekontext |
|||
Temporär veränderlich durch Ausführen als-Ereignisaktion: |
|||
Benutzer |
user |
"Schnittstelle > Benutzer" |
Benutzer der Session; abhängig vom Typ der Sitzung ein Benutzer- oder Gastbenutzerkonto (s. Benutzer, Gastbenutzer) |
Firma |
currentOwner |
"Schnittstelle > Besitzer" |
Firma der Session; ein Firmenkonto (s. Firmen) |
additionalData[ parentCopmanies ] |
Long[] |
Liste der IDs aller der Firma der Session direkt oder indirekt übergeordneten Firmen |
|
Rolle |
currentRole |
"Schnittstelle > Rollen" |
Rolle der Session (s. Rollen) |
permissionTree |
"Erlaubnisbaum" |
Berechtigungen der Rolle der Session als Baumstruktur |
|
additionalData[ parentRoles ] |
Long[] |
Liste der IDs aller der Rolle der Session direkt oder indirekt übergeordneten Rollen |
|
Nicht beeinflussbar durch die Ausführen als-Ereignisaktion (Aktualisierung nur beim Anmelden einer Sitzung): |
|||
Sprache |
locale |
String |
|
Zeitzone |
additionalData[ userTimeZone ] |
String |
Name der in der Sitzung anwendbaren "Default Zeitzone" (defaultTimeZone), laut angemeldetem Benutzerkonto oder Firmenkonto:
|
Textbausteine |
additionalData[ welcomeText ] |
String |
Verkettung der folgenden Felder aus der Adresse des angemeldeten Benutzerkontos (user.address) getrennt durch Leerzeichen:
|
additionalData[ welcomeTooltip ] |
String |
Verkettung von Feldern aus dem tatsächlichen Anmeldekontext (Benutzer, Rolle, Firma) nach dem folgende Schema: |
|
Informationen zum Client/Browser |
|||
Client |
clientType |
String |
"Client-Typ" (s. Aktive Benutzer); meistens: HTML5_DESKTOP |
dmzInfo |
String |
IP-Adresse der DMZ |
|
hostInfo |
String |
IP-Adresse des Clients |
|
userAgentName |
String |
Browser-Kennung |
|
userAgentVersion |
String |
Browser-Versionskennung |
|
additionalData[ $client-id$ ] |
String |
ID des Client-Endpunkts |
|
additionalData[ isMobile ] |
Boolean |
Kennzeichen für "mobile" Sitzung (s. Mobiles Endgerät?) |
|
Informationen zur Sitzung
|
|||
Sitzung |
sessionToken |
String |
Session Token (eindeutig für die Sitzung) |
startTime |
Date |
Startzeitpunkt der aktuellen Sitzung |
|
lastAccess |
Date |
"Letzter Kontakt" zum Server (s. Aktive Benutzer) |
|
lastActivity |
Date |
"Letzte Aktivität" der Sitzung auf dem Server (s. Aktive Benutzer) |
|
safeMode |
Boolean |
Kennzeichen für Abgesicherter Modus (safeMode) |
|
additionalData[ authHandler ] |
String |
Name der spezifischen Klasse für den Login-Typ |
|
additionalData[ serverURL ] |
String |
Basis-URL für den Aufruf der Sitzung (Domäne) |
|
Zusätzliche Sitzungsdaten |
|||
(s. Details oben mit blauer Schattierung) |
additionalData |
Map |
Map mit "Zusätzlichen Sitzungsdaten", die automatisch vom System oder vor Beginn der eigentlichen Sitzung über das Ereignis "Zusätzliche Sitzungsdaten initialisieren" bereitgestellt werden. |
Konfiguration
Der Info der Session-Wertauflöser verwendet keine Parameter und ignoriert den Eingabewert.
Beispiel
Als Reaktion auf ein bestimmtes Eigenes Aktionsevent (XF_SESSION_DETAILS) soll eine Meldung mit wichtigen Informationen zur aktuellen Sitzung angezeigt werden, sofern ein regulärer Benutzer (s. Benutzer) und nicht etwa ein Gastbenutzer (s. Gastbenutzer) angemeldet ist.
Laufzeitbeispiel:
Im Ribbon-Menü "Verwaltung/Datenkontext" wird im Kontext ausgewählter Views ein ein Button "Session Information" hinzugefügt. Dieser dient dazu, das Eigene Aktionsevent XF_SESSION_DETAILS "auf Bestellung" auszulösen. Es kann aber auch durch andere Ereignisse (z. B. bei "Client angemeldet", s. Anmeldung (Ereignisse)) oder innerhalb eines Workflows über die Eigenes Aktionsevent auslösen (Aktion) automatisch ausgelöst werden. Rechts unten ist ein Beispiel für die formatierte Ausgabe konkreter Daten aus dem "Session Information"-Objekt zu sehen. Angezeigt werden hier:
►HINWEIS◄ USER, ROLE und COMPANY können innerhalb eines Workflows von der tatsächlichen Sitzung abweichen, falls über die Ausführen als-Ereignisaktion ein temporär abweichender Anmeldekontext definiert wird. |
|
|
Konfiguration:
Ein Eigenes Aktionsevent XF_SESSION_DETAILS wird angelegt und als Auslösendes Ereignis der rechts abgebildeten Ereignisbehandlung zugewiesen. Die Prüfende Regel soll sicherstellen, dass die Anzeige der "Session Details" nur ausgeführt wird, wenn ein "vollwertiger" Benutzer (und nicht etwa ein Gastbenutzer) angemeldet ist. Die Meldung soll auch dann nicht erscheinen, falls innerhalb einer Gastbenutzer-Sitzung das Ereignis XF_SESSION_DETAILS durch einen Workflow ausgelöst wird, in dem der Benutzer der Session durch eine Ausführen als temporär verändert wurde. Deshalb darf sich die Regel nicht auf den Benutzer der Session bzw. das Feld user im Rückgabewert von Info der Session beziehen. Hier wird stattdessen innerhalb einer Objekt-Feld-Regel über einen Objekt-Feld-Wertauflöser der Wert zum Schlüssel authHandler in der Map gelesen, die die Info der Session im Feld additionalData bereitstellt. Dieser verweist genau dann auf den vollständigen Namen der Klasse UserAuthenticationHandler (s. statischer Text rechts im Bild), wenn die Sitzung auf ein "Benutzer-Login" zurückgeht. Die Prüfende Regel wird also nicht bestanden, falls ein "Gastbenutzer-Login" (per GuestUserAuthenticationHandler) oder ein "Portal-Login" (per PortalAuthenticationHandler) vorliegt. |
|
Als Aktion bei bestandener Regel wird hier eine Hinweis anzeigen (Popup)-Ereignisaktion konfiguriert:
►HINWEIS◄ Im Beispiel verdeutlicht der XPath-Ausdruck für den Wert der "SITE", wie der Zugriff auf einen Wert der additionalData-Map per XPath (hier über den Schlüssel serverURL) funktioniert. Anstelle des Vorlage-Wertauflösers könnte hier auch eine Textverkettung eingesetzt werden, die Schritt für Schritt Feldwerte aus dem "Session Information"-Objekt über Objekt-Feld-Wertauflöser mit statischen Texten zusammensetzt. Dabei ist zu beachten, dass die Namen der Felder (s. a. Tabelle oben) in den meisten Fällen, aber nicht immer komplett mit den korrespondierenden Element- oder Attributnamen in der XML-Struktur des Objekts übereinstimmen. Dem XPath-Ausdruck {@token} entspräche im Beispiel etwa ein Zugriff auf das Feld sessionToken des Objekts. |
|