- Alle Berechtigungsobjekte erben von Basis.Rolle (OrmRoleBase). Das sind allen voran Benutzer und Rollen. Die Datentabelle Basis.Rolle ist nur eine logische Gruppierung und enthält weder eigene Felder noch existiert eine SQL Tabelle mit Daten.
- Nur Datensätze auf Basis.Rolle können Berechtigungen erteilt werden.
- Alle Berechtigungen können beliebigen Basis.Rolle Datensätze erteilt werden. Das schließt auch eigene Berechtigungsklassen in Projekten ein.
- Rollen können andere Rollen enthalten. Das bewirkt im Ergebnis dasselbe, als wenn der Benutzer rekursiv alle Rollen direkt zugeordnet hätte. Dabei wird der “Rollenmitglieder” Relation immer nur in der Richtung Quelle -> Ziel gefolgt, also der Benutzer hat alle Rollen in denen er Quelle ist oder in denen eine seiner Rollen selbst Quelle ist.
- Berechtigungsobjekte können allgemein andere Berechtigungsobjekte enthalten. Also nicht nur Rollen andere Rollen. (siehe Beispiele)
- Die “Rollenmitglieder” ist eine hierarchische Relation. Dabei darf es nicht zu Schleifen kommen. Also Rolle A ist in Rolle B und Rolle B ist in Rolle A ist verboten.
- Änderungen an Rollenmitgliedschaften wirken sich erst nach dem nächsten Login der betroffenen User aus.
- Die Datentabellen zu den Berechtigungsobjekten (Benutzerprofil, Rolle …) können genau wie andere Datentabellen vom Konfigurator oder in Projekten erweitert werden.
- In Projekten können auch komplett neue Berechtigungsobjekte erstellt werden.