Die Berechtigungen in Top-Logic basieren darauf, dass Nutzer Rollen auf Fachobjekten haben. Ein Nutzer darf dann eine Funktion ausführen, wenn eine seiner Rollen, die er auf dem Berechtigungsobjekt der Funktion hat, die Berechtigung besitzt, die Kommandogruppe der Funktion in der Sicht auszuführen, in welcher die Funktion definiert ist.

Nutzer

Eine Session ist verknüpft mit einem Nutzer repräsentiert als Fachobjekt des Typs Person (vgl. PersonMeta.xml). Der Nutzer wird einer Session beim Login zugewiesen und ist über com.top_logic.util.TLContext.getPerson() verfügbar.

Funktion

Funktionen im System sind repräsentiert über sog. CommandHandler, die an Komponenten registriert sind und deren zusätzliche Eigenschaften (neben der eigentlichen Ausführungslogik) konfigurierbar sind (vgl. com.top_logic.tool.boundsec.CommandHandler.Config).

Kommandogruppe einer Funktion

Die Kommandogruppe einer Funktion wird bei der Funktion konfiguriert (com.top_logic.tool.boundsec.CommandHandler.Config.getGroup()). Eine Kommandogruppe ist ein Name, unter dem gleichartige Funktionen berechtigungstechnisch zusammengefasst werden. Häufig verwendete Kommandogruppen sind Read, Write, Create, Delete.

Berechtigungsobjekt einer Funktion

Das Berechtigungsobjekt einer Funktion wird bestimmt über die Methode com.top_logic.tool.boundsec.CommandHandler.getBoundObject(LayoutComponent, Map<String, Object>) der Funktion. Diese fällt i.d.R. zurück auf com.top_logic.tool.boundsec.BoundChecker.getCurrentObject(BoundCommandGroup) der Komponente, an der die Funktion aufgerufen wird.

Rollen-Definition

Rollen werden in einem Modul (TLModule) definiert (vgl. Konfigurationssektion com.top_logic.element.config.ModuleConfig.getRoles()). Hier werden die Rollen(-namen) aufgezählt, die für dieses Modul verwendet werden können.

Rollen-Berechtigungen

Das Recht einer Rolle, in einer gewissen Sicht eine Funktion mit einer gewissen Kommandogruppe ausführen zu dürfen, wird in der Administration "Rollenprofile" festgelegt. Hierbei werden Tripel (Rolle, Berechtigungskomponente, Kommandogruppe) in der Datenbank abgelegt, wenn eine Rolle in einer Sicht unterhalb einer Berechtigungskomponente Funktionen mit einer gewissen Kommandogruppe ausführen darf.

Rollen-Regeln

Um Rollen auf Fachobjekten zu vergeben, werden Regeln definiert, welche Rollen aus Attributbelegungen von Fachobjekten ableiten (Nutzer- und Gruppenzuweisungen in nutzer- und gruppenwertigen Attributen). Diese Regeln werden in der Konfigurationssektion com.top_logic.element.boundsec.manager.ElementAccessManager.Config.getRoleRules() definiert.

Explizite Rollenzuweisung

Zusätzlich zu den Rollen-Regeln können Nutzer und Gruppen explizit Rollen an Fachobjekten zugewiesen werden. Diese explizite Rollenzuweisung geschieht in der Adminstration in der Sicht "Benutzerrechte". Hier wird einem Nutzer explizit eine Rolle auf einem konkreten Objekt zugewiesen.