Inhaltsberechtigungen – Systembeschreibung

Die Tabelle der Inhaltsregeln, der Objektkatalog, der Vorrang von Benutzer- vor Gruppenregeln, die Endpunkte und der Zugriff nur für den Super-Administrator.

Überblick

Inhaltsberechtigung (Ebene 3): WER (Benutzer oder Gruppe) WAS (Objekttyp + Schlüssel) für WELCHE Werte sehen darf. Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation; die Tabelle ist permission_scope (effect = 'allow'). Objektstämme werden zur Auflösung der Bezeichnungen gelesen.

Objektkatalog (catalog())

BereichObjekttyp (Schlüssel)
globalcompany (company_id), user (user_id – Erfasser), subscription_usage (user_id – wessen Verbrauch sichtbar ist)
Rechnunginvoice_customer (customer_id), invoice_supplier (supplier_id), invoice_type (invoicetype_id)
Ereignistopic, event
Statistikamtksh_settlement, ksh_dataset (geo)
Speicherstorage_account, storage_create (account_id)

Endpunkte

scope.list (eine Zeile je Subjekt), scope.form, scope.objectsearch, scope.valuelist, scope.valueadd, scope.valueremove, scope.valuebatch, scope.delete (alle Regeln des Subjekts). Werte lassen sich mit Live-Suche einzeln oder gesammelt hinzufügen und entfernen.

Auswertung

getAllowedScopeValues($object_type, $scope_key): Super → unbeschränkt; hat der Benutzer eine eigene Regel, nur diese; sonst die der Gruppe; gibt es keine → unbeschränkt. Nur Erlaubniswerte. getAllowedScopeTexts() entsprechend für Textwerte (Benutzer und Gruppe gemeinsam).

Berechtigungen

  • Jeder Endpunkt verlangt isSuper(); im Seed ist list UNMAPPED, add, edit, delete sind SYSTEM.
  • Die Schaltfläche „Add“ folgt canAction(add); der Schalter debug folgt canAction(debug), der Controller übergibt das Listen-SQL aber bedingungslos an die Vorlage.