Rollen
Der Menüeintrag Rollen ist im Hauptmenü über den Menüknoten "Verwaltung/Konten" zu finden, sofern ausreichende Berechtigungen vorliegen.
Er öffnet per Standard eine Übersicht für den Entitätstyp "Rolle" (Role), die alle Rollen auflistet, auf die die Rolle der Session zugreifen kann.
View-Name: de.lobster.scm.base.security.role::Role|listDetailsWindow
Menüknotenname: admin/accounts/roleOverview
Den Zugriff auf Rollen regeln die Berechtigungen für den Knoten "Verwaltung/Konten/Rollen" (administration/accounts/role).
Der Menüeintrag Rollen erscheint nur, wenn die Berechtigung "Anzeigen" (show) für Rollen vorliegt.
Im Unterschied zu anderen Entitäten ist für den Zugriff auf Rollen ausschließlich deren Position in der Rollenhierarchie ausschlaggebend.
Obwohl für jede Entität des Typs "Rolle" ( Role ) formal ein "Besitzer" ( ownerId ) ausgewiesen wird, greifen effektiv keine Besitzereinschränkungen für diese Entitätstyp.
Sofern die Rolle der Session Besitzereinschränkungen berücksichtigt, besteht nur Zugriff auf Rollen, die der Hierarchie abwärts von dieser angehören, weil sie dieser direkt oder indirekt untergeordnet sind.
►WICHTIG◄ Schreibzugriffe für die Rolle der Session sind nicht zulässig, wenn diese nicht über die Berechtigung "Besitzereinschränkungen ignorieren" für Rollen verfügt.
Ohne diese Berechtigung erscheinen einerseits die Ribbon Buttons "Speichern" und "Löschen" deaktiviert, wenn die Rolle der Session ausgewählt ist. Anderseits wird das "Ändern" auch im Automatisierungskontext (z. B. via Änderungen später speichern) verhindert, wenn es die Rolle der Session betrifft.
Selbst mit der Berechtigung "Besitzereinschränkungen ignorieren" für Rollen sind Änderungen an der Rolle der Session nur eingeschränkt möglich. Änderungen am Feld "Übergeordnete Rolle" (parentRole) und an den Berechtigungen (flatPermissions) werden beim "Ändern" ignoriert.
Wie bereits im Kapitel Benutzer beschrieben, ergeben die sich die effektiven Zugriffsrechte innerhalb einer Sitzung aus den Berechtigungen für die Rolle der Session und - sofern Besitzereinschränkungen relevant sind - den Besitzverhältnissen und ggf. Firmenfreigaben für die Firma der Session.
Dabei entscheidet die Rolle der Session "kategorisch" darüber, welche Berechtigungen grundsätzlich verfügbar sein sollen und vor allem, welche grundsätzlich ausgeschlossen sind.
Damit Berechtigungen, die sich auf Entitäten beziehen (etwa: "Ändern" für Benutzer), effektiv genutzt werden können, muss neben der grundsätzlichen Berechtigung für die Rolle der Session auch der Zugriff der Firma der Session auf die individuelle Entität gewährleistet sein. Nur für Entitäten, für die die Firma der Session als "Besitzer" gilt, ist das selbstverständlich der Fall. Alle Zugriffe auf Entitäten im Besitz anderer Firmen/Mandanten, erfordern Firmenfreigaben. Sonderfälle sind dabei Entitäten, denen kein Besitzer zugeordnet ist, und spezielle Entitätstypen (bestimmte Stammdaten, z. B. auch die "Rollen"), für die per Definition keine "Besitzereinschränkungen" gelten. In beiden Fällen können Berechtigungen, die die Rolle der Session gewährt, ohne Rücksicht auf die Firma der Session grundsätzlich ausgeübt werden.
In Bezug auf Entitätstypen, für die Besitzereinschränkungen grundsätzlich relevant sind, bestimmt die Firma der Session (über Besitz und ggf. Firmenfreigaben) den "Aktionsradius", in dem die zugehörigen Berechtigungen der Rolle der Session ausgeübt werden können.
Die Berechtigungsstrukturen für die Definition von Rollen und Firmenfreigaben sind in großen Teilen analog aufgebaut, so dass die Überschneidungen (s. a. Beispiel) einfach nachvollzogen und effizient verwaltet werden kann.
Die Rollendefinition umfasst aber auch rein funktionale Berechtigungen (z. B. den Zugriff auf administrative Werkzeuge), die nicht Gegenstand von Firmenfreigaben sind. Umgekehrt können gelegentlich Freigaben für Berechtigungen erteilt werden, die in der Berechtigungsstruktur von Rollen enthalten sind.
Konkretes Beispiel:
Ein Benutzer verwendet eine Rolle der Session, die das Lesen und Anzeigen von Entitäten des Typs "Aircraft" (Eigener Entitätstyp im Namespace custom) erlaubt, nicht aber das Ändern, Erstellen, Löschen (usw.).
Die Firma der Session verfügt aufgrund einer Firmenfreigabe einer anderen Firma über die Genehmigung, die Daten von "Aircraft"-Entitäten in deren Besitz nicht nur zu Lesen sondern auch zu Ändern.
In dieser Konstellation verfügt der Benutzer im Kontext der angemeldeten Sitzung effektiv folgenden Zugriffe für "Aircraft"-Entitäten:
Die Rollenberechtigung zum Anzeigen erlaubt es ihm eine Übersicht für den Typ "Aircraft" zu öffnen.
Wegen der Firmenfreigabe zum Lesen listet die Übersicht nicht nur eigene "Aircraft"-Entitäten (in Besitz der Firma der Session) auf, sondern zusätzlich die in Besitz der freigebenden Firma.
Die Firmenfreigabe zum Ändern ist effektiv unwirksam, da der Benutzer ohne die zugehörige Rollenberechtigung nicht einmal eigene "Aircraft"-Entitäten ändern darf.
Berechtigungen für Rolle der Session |
|
Berechtigungen der Rolle der Session für "Aircraft"-Entitäten :
|
Eine andere Firma gewährt der Firma der Session im Kontext einer Firmenfreigabe u. a. folgende Berechtigungen für die in ihrem Besitz befindlichen "Aircraft"-Entitäten:
|
Durch Firmenfreigaben erteilte Berechtigungen (hier: Lesen, Ändern) können nur den "Anwendungsbereich" für durch die Rolle der Session gewährte Berechtigungen, die den Zugriff auf Entitäten mit Besitzereinschränkungen betreffen, quantitativ ausdehnen (hier: Lesen) aber qualitativ "fehlende" Rollenberechtigungen (hier: Ändern) nicht ergänzen. ►ANMERKUNG◄ Die Berechtigung zum Anzeigen steuert nur den Zugriff auf Menüeinträge im Hauptmenü für den Entitätstyp "Aircraft", sodass Besitzereinschränkungen für individuelle Entitäten keine Rolle spielen. Sonst gäbe es diese Berechtigung auch im Baum für Firmenfreigaben. |
Die interaktive Verwaltung für Rollen stützt sich per Standard auf eine kombinierte Ansicht (listDetailsWindow), die über den Menüeintrag Rollen im Hauptmenü geöffnet werden kann.
Der folgende Screenshot zeigt das Standard-Ribbon (für eine Rolle mit allen relevanten Berechtigungen), darunter die Standard-Erfassungsmaske mit den Details der im Listenbereich (ganz unten) ausgewählten Rolle.
Inhalte der Standarderfassungsmaske
Die per Standard für Rollen angebotene Erfassungsmaske bildet die für direkte interaktive Pflege relevanten Inhalte der Datenstruktur für Rollen über Formularelemente ab.
Feld |
Datenfeldpfad |
Beispielwerte |
Inhalte |
Aktiv |
active |
$true (boolean) |
Das Kennzeichen Aktiv muss gesetzt sein, damit eine Rolle zum Anmelden einer Sitzung genutzt werden kann. |
Rollenname |
roleName |
"Admin (accounts)" |
Der Rollenname muss systemweit eindeutig sein. Das Speichern wird sonst mit Fehlermeldung abgelehnt. |
Lokalisierungen Deutsch Englisch Französisch |
Über die Sprachverwaltung bzw. Firmenspezifische Sprachanpassungen können optional Lokalisierungen für Rollennamen definiert werden, die in ausgewählten Kontexten (z. B. Rollenauswahl beim Login für Benutzer) den Rollennamen übersteuern. Das zugehörige Bundle lautet rolename. Als Resource dient der Rollenname (roleName). Lokalisierungseinträge für Rollen werden nicht automatisch generiert. Um das Lokalisieren von Rollen zu erleichtern, bietet die Erfassungsmaske ein Textfeld für jede unterstützte Sprache an, über das Lokalisierungen erstellt, geändert und gelöscht werden können.
►HINWEIS◄ Firmenspezifische Sprachanpassungen werden nicht auf die Textfelder in der Erfassungsmaske abgebildet, beeinflussen aber ggf. trotzdem die Ausgabe in der Spalte Übersetzung im Listenbereich, sofern die die Aktuelle Sprache betreffen. Die Pflege erfolgt ausschließlich über den Menüeintrag Firmenspezifische Sprachanpassungen. |
||
Übergeordnete Rolle |
parentRole |
"QTIP", "Versteckte Rolle" |
Einfachauswahl für die Übergeordnete Rolle, die eine Rolle in der Rollenhierarchie verortet. |
►HINWEIS◄ Die Beschriftung "Versteckte Rolle" erscheint im Auswahlfeld/Combobox-Element für Rollen, die bereits zugewiesen sind und deshalb im Kontext der aktuellen Sitzung zwar entfernt aber danach nicht wieder ausgewählt werden könnten. Sofern für die Rolle der Session Besitzereinschränkungen relevant sind, sind nur Rollen aus der Rollenhierarchie abwärts von der Rolle der Session als Übergeordnete Rolle verfügbar. ► WICHTIG ◄ Eine Rolle, deren Übergeordnete Rolle als "Versteckte Rolle" erscheint, kann zwar geändert aber nicht erstellt werden. Dies ist vor allem beim Kopieren einer bestehenden Rolle relevant. Ggf. muss die versteckte Übergeordnete Rolle durch eine auswählbare ersetzt werden, damit die kopierte Rolle gespeichert werden kann. ►ANMERKUNG◄ Im Listenbereich erscheinen in der Spalte für die Übergeordnete Rolle der betreffende Rollenname auch dann sichtbar, wenn die Rolle im Auswahlfeld/Combobox als "Versteckte Rolle" angezeigt wird. Das klingt komisch, ist aber so. Schließlich soll der Rollenname nicht verheimlicht werden, sondern nur die Auswahl der Rolle verhindert. |
|||
Rollenbeschreibung |
roleDescription |
"Pflege von Benutzerkonten" |
Die Angabe einer Rollenbeschreibung mit Klartext zur Bestimmung der Rolel ist optional. |
Modus |
flatPermissionNames[] |
|
|
Berechtigungen |
|
|
Details zum Modus "Benutzerdefiniert" für Berechtigungen
Berechtigungen werden durch An- und Abwählen im Berechtigungsbaum gewährt oder verweigert. Der Baum gruppiert die einzelnen Berechtigungen ggf. über mehrere Stufen, die auch pauschal an- oder abgewählt werden können.
|
Für jedes Gruppenelement im Baum sind dabei drei Statuswerte möglich:
►WICHTIG◄ Die Baumstruktur zeigt nur Berechtigungen (inkl. übergeordneten Gruppenelementen) an, die laut der aktuellen Definition für die übergeordnete Rolle als "gewährt" gelten. Die beschriebene Symbolik für die Gruppenelemente bezieht sich dabei immer auf die Elemente die akut im Baum angezeigt werden. Diese Einschränkung gilt auch dann, wenn der Baum mit der nachfolgend beschriebenen Suchfunktion gefiltert wird. Durch Eingabe einer Zeichenfolge in das Suchfeld kann gezielt nach bestimmten Berechtigungen oder Gruppenelementen gesucht werden. Die Suche startet beim Drücken der Eingabetaste und reduziert die Baumdarstellung auf Äste, die einen Treffer enthalten. In den Suchergebnissen können dann wieder Berechtigungen oder Gruppenelemente an- und abgewählt werden. Um zum ungefilterten Baum zurückzukehren, kann man entweder das Suchfeld leeren und die Eingabetaste drücken oder das x-Symbol anklicken, das anstelle der Lupe links neben dem Suchfeld erscheint, wenn eine Suche ausgeführt wurde: |
►HINWEIS◄ Für die Zeichenfolge im Suchfeld können - wie im Screenshot demonstriert - die RegExp-Steuerzeichen ^ (für Textanfang) und $ (für Textende) verwendet werden, um die Charakteristik der Suche zu steuern: |
|
|
Ohne Steuerzeichen, wird die Suchzeichenfolge (hier: aircraft) ohne Beachtung der Groß-/Kleinschreibung als Teilzeichenfolge in den Labels des Berechtigungsbaums gesucht. Wie im Screenshot links zu sehen, ergibt dies im Beispielszenario zusätzliche Treffer, weil der Baum im Bereich "Konfiguration" noch einen Knoten für den Zugriff auf Erfassungsmasken für die "Aircraft"-Entität enthält. Um den unerwünschten Treffer "custom_Aircraft" zu vermeiden hätte die Eingabe von ^air als Suchzeichenfolge (→beginnt mit 'air') ausgereicht. Die Eingabe von craft$ als Suchzeichenfolge (→endet mit 'craft') hätte dagegen wieder beide Knoten als Treffer geliefert. ►ANMERKUNG◄ Auch wenn die beiden im Beispiel verwendeten Steuerzeichen den Eindruck erwecken könnten, werden komplexere RegExp-Ausdrücke als Suchzeichenfolge nicht verarbeitet. |
ACHTUNG
Wenn der Berechtigungsumfang einer Rolle reduziert wird, entfällt diese Berechtigung effektiv auch für alle direkt oder indirekt untergeordneten Rollen. Entsprechend reduziert sich auch die Baumansicht um die weggefallenen Elemente. Soweit die Rollendefinition einer untergeordneten Rolle eine betroffene Berechtigung ausdrücklich gewährt hatte, bleibt diese Zuordnung dabei allerdings latent erhalten, solange die Rollendefinition nicht verändert wird. Falls der Berechtigungsumfang der übergeordneten Rolle zu eine späteren Zeitpunkt wieder erweitert oder etwa eine andere Rolle mit entsprechenden Berechtigungen übergeordnet werden sollte, gelten "latente" Berechtigungen für die untergeordnete Rolle sofort wieder als erteilt.