Gastbenutzer
Neben einem normalen Benutzer kann in Lobster Data Platform / Orchestration auch ein temporärer Gastbenutzer angelegt werden. Im Gegensatz zu einem normalen Benutzer besitzt dieser keinen Benutzernamen, sondern ein generiertes Login-Token. Zudem kann für ein Gastbenutzerkonto ein Ablaufdatum festgelegt werden. Ist der dort angegebene Zeitraum überschritten, kann der Gastbenutzer nicht mehr angemeldet werden.
Der Menüpunkt "Gastbenutzerübersicht" öffnet eine kombinierte Ansicht für die Verwaltung der Konten für Gastbenutzer.
Gastbenutzerübersicht
Der Listenbereich (1) zeigt Gastbenutzerkonten, für die im Kontext der aktuellen Anmeldung mindestens Lesezugriff besteht. Abhängig von weiteren Berechtigungen, kann der angemeldete Benutzer Konten hinzufügen ("Neu", "Kopieren") oder bestehende Konten (nach Auswahl in der Liste) bearbeiten oder löschen.
Per Klick auf das Schlüsselsymbol (2) ein eindeutiger Login-Token generiert werden. Die erzeugte Zeichenfolge dient als Zugangskennung für die Anmeldung als Gastbenutzer am System. Wahlweise kann auch eine Zeichenfolge direkt eingegeben werden, anstatt einen Login-Token zu generieren. Beim Klick auf "Speichern" prüft das System, ob der angegebene Login-Token eindeutig ist, und verweigert das Aktualisieren oder Ändern eines Gastbenutzerkontos falls der Schlüssel bereits in Gebrauch ist. Soll eine Kopie eines bestehenden Gastkontos erstellt werden, muss also vor dem Speichern der kopierte Login-Token ersetzt werden.
Ein Gastbenutzer kann Aktiv (3) oder inaktiv gesetzt werden. Das System weist Anmeldeversuche für inaktive Gastkonten mit einer Meldung zurück.
Die Combobox für die Sprache (4) legt die Sprachauswahl für die Benutzeroberfläche für den jeweiligen Gastbenutzer fest. Der angemeldete Gastbenutzer kann die Spracheinstellung im Unterschied zu einem regulären Benutzer während einer Sitzung nicht selbst verändern.
Für den Gastbenutzer kann über Auswahllisten jeweils eine Rolle (5) und eine Firma (6) zugewiesen werden. Diese greifen - wie für einen regulären Benutzer mit eindeutigen Zuordnungen - automatisch für jede Sitzung.
Die Angabe einer E-Mail Adresse (7) für den Gastbenutzer ist erforderlich. Sie wird im Objekt-Feld E-Mail (emailAddress) gespeichert und kann dort z. B. für den automatischen Versand von Benachrichtigungen ausgelesen werden.
Das Feld Erlaubte Logins (8) steuert, wie oft das Gastbenutzerkonto maximal verwendet werden kann, um eine Sitzung zu eröffnen.. Die Anzahl 0, wird als "unbeschränkt" interpretiert. Das Feld Anzahl Logins zeigt die bereits ausgeführten (bereits "verbrauchten") Anmeldungen für das Gastbenutzerkonto an. Anmeldungen sind nur erlaubt, solange die Anzahl Logins einen Grenzwert (>0) für Erlaubte Logins (8) noch nicht erreicht hat. bei Bedarf kann dieses Limit auch nachträglich angepasst werden.
Das Feld Max. gleichzeitige Logins (9) begrenzt die Anzahl der gleichzeitigen Anmeldungen für das Gastbenutzerkonto. Die Eingabe ist dabei auf Werte >0 beschränkt.
Über die Auswahl von Datum und Uhrzeit für Gültig bis (10) kann die Nutzung des Gastbenutzerkontos zeitlich befristet werden.
Der Button Eigene Daten > Bearbeiten (11) öffnet einen einfachen XML-Editor, über den benutzerdefinierte Inhalte für das Gastbenutzerkonto eingesehen oder bearbeitet werden können. Typischerweise werden solche Inhalte automatisch bereitgestellt, häufig von einen Mechanismus, der auch das gesamte Gastbenutzerkonto automatisch anlegt. Ein Anwendungsbeispiel für "Eigene Daten" wird unten ausführlicher beschrieben.
Details zum Verlauf der bisherigen Anmeldungen eines Gastbenutzers können über den Button Anmeldungen > Anzeigen (12) aufgelistet werden. Die Historie enthält auch Daten zu Sitzungen, die noch andauern.
Gastbenutzer Login-Vorgang
Über das Zahnrad-Symbol rechts oben im Login-Fenster (1) kann der Login-Typ gewählt werden. Beim "Gast-Login" (2) kann der Login-Token eingetragen und der Gastbenutzer am System angemeldet werden.
►HINWEIS◄ In Zusammenhang mit dem Gastbenutzer-Login bieten URL-Parameter interessante Einflussmöglichkeiten für das Verhalten beim Aufruf des Systems.
Konfigurationsbeispiel
In einer beispielhaften Konfiguration sollen Gastbenutzer verwendet werden, um einen eingeschränkten Lesezugriff auf bestimmte Sendungen zu ermöglichen. Dabei sollen folgende Restriktionen individuell je Gastbenutzerkonto "parametriert" werden können:
Einerseits sollen nur Sendungen in einem bestimmten Zeithorizont vor dem aktuellen Zeitpunkt Änderungen angezeigt werden.
Andererseits soll eine Filterbedingung für den Wert eines Textattributs "Werk" angegeben werden können, das die "Zuständigkeit" des Gastbenutzers für die Sendung abgrenzt.
Weitere Einschränkungen für die Sichtbarkeit von Sendungen ergeben sich aus dem Kontext der im Gastbenutzerkonto zugewiesenen Firma über Besitz, Beteiligung bzw. Effektive Freigaben.
Den betreffenden Gastbenutzern wird eine Rolle zugewiesen, die ausschließlich die folgenden Berechtigung zugesteht:
Geschäftsobjekte / Sendungen / Lesen
Geschäftsobjekte / Sendungen / Details anzeigen
Außerdem wird eine spezielle Sendungsübersicht eingerichtet (s. Eigene Übersichten), deren Bedingung die genannten Parameter für das jeweilige Gastbenutzerkonto berücksichtigen muss. Diese Parameter werden zu diesem Zweck als "Eigene Daten" im Gastbenutzerkonto hinterlegt und dazu in einem Portal erfasst, das ausgehend von der Gastbenutzerübersicht mit einer Einfachauswahl für einen bestimmten Gastbenutzer per Ribbon-Button (Befehl "Portale > Portal öffnen") geöffnet werden kann:
Beim Öffnen des Portals werden die Daten des ausgewählten Gastbenutzers automatisch übergeben, wenn das Formulardesign einen Container mit dem Datenfeld "loadedItem" enthält. Hier enthält dieser Container die Elemente ID (Datenfeld: id), Login-Token (loginToken) und E-Mail (emailAddress).
Unterhalb kann ein Filter für das Werk (Datenfeld: PLANT_FILTER) per Auswahlfeld/Combobox (mit den Schlüsselwerten A120, A121, A125, A127 und A12_) ausgewählt werden. Der gewählte Wert wird in der Bedingung für das Textattribut "Werk" (t_PLANT.value.text) der Eigenen Übersicht per LIKE verglichen.
Daneben muss ein Datumswert für ab Stichtag (Datenfeld: MINDATE) ausgewählt werden, der den Zeithorizont rückwärts abgrenzt und in der Bedingung der Eigenen Übersicht per "größer oder gleich" mit dem Änderungsdatum (lastModified) verglichen wird.
Die Filterkriterien sind in einem Container "filters" (nicht sichtbar im Screenshot) zusammengefasst, der einen einfachen Zugriff auf die Kombination in der weiteren Konfiguration ermöglicht (s. unten).
Beim Klick auf den Button Freigabe erstellen wird per Verhalten ein Eigenes Aktionsevent "Gastbenutzer - Daten setzen" (SET_GUEST_USER_DATA) ausgelöst, auf das die folgende Ereignisbehandlung "lauscht":
Da das Auslösende Ereignis ausschließlich aus dem Portal ausgelöst werden kann, beschränkt sich die Prüfende Regel hier auf ein Sub-Kriterium, das den Kontext für den Zugriff auf die Funktion abgrenzt (Firmenregel, Rollenregel).
Sämtliche Aktionen sollen im Kontext des ausgewählten Gastbenutzerkontos ausgeführt werden. Dieser wird hier innerhalb einer Ausführen mit Aktion über die Variable "formData" (Typ "Client Objekt") erst aus den Daten des Portals ermittelt. Hierzu wird der Container "loadedItem", der die Auswahl repräsentiert an einen Eingabeobjekt (Typsicher) Wertauflöser weitergegeben, der dann das Gastbenutzerkonto-Objekt zurückgibt.
Per Setze Wert Aktion erfolgt schließlich die Zuweisung an das Objekt-Feld "Eigene Daten" (customData) des Gastbenutzerkontos. Der Container "filters" aus der Variablen "formData" beinhaltet die Einstellungen aus dem Portal.
Die Änderungen später speichern Aktion sorgt dafür, dass Änderung für das Objekt gespeichert wird, obwohl es nur über Ausführen mit hinzugezogen wurde.
Das Ergebnis für eine konkrete Zuweisung kann dann z. B. über den "Eigene Daten > Bearbeiten" Button in der Gastbenutzer-Übersicht überprüft werden:
In der Bedingung für die Eigene Übersicht "Sendungsübersicht (Gastbenutzer)" werden die Filterkriterien dann wie folgt eingebunden:
Das Textattribut "Werk" (t_PLANT.value.Text) wird per LIKE mit der Auswahl für "Werk"(PLANT_FILTER) verglichen.
Dazu wird zunächst der Benutzer der Session identifiziert und anschließend per Eingabeobjekt (Typsicher) dessen Gastbenutzerkonto gelesen.
Dessen Objekt-Feld "Eigene Daten" (customData) liefert das per Portal generierte Objekt (object) mit den Feldern (property) PLANT_FILTER (string) und MINDATE (DateTime).
Im Bild greift der Objekt-Feld Wertauflöser auf PLANT_FILTER zu, um den gespeicherten Vergleichswert zu lesen.
Der Zugriff auf MINDATE für den Abgleich mit dem lastModified-Zeitstempel (unten) erfolgt analog zu dieser Vorgehensweise.
Beispiele aus der Anwendung:
Beispielansicht für einen Gastbenutzer, der Daten für alle Werke der Gruppe "A-12" (Filter: [Werk] LIKE 'A12_') sehen darf, die nach dem 01.06.2019 geändert wurden.
Dagegen erhält ein Gastbenutzer z. B. das folgende Ergebnis, wenn er nur Werk "A-12-0" sehen darf, aber dafür Sendungen mit Änderungsdatum seit 01.01.2018: