Funktionsberechtigungen – Systembeschreibung
Speichern der benutzerbezogenen Zuweisungszeilen, der Ersetzungsmodus beim Laden eines Tarifs, die alten Gruppenmatrix-Endpunkte und Besonderheiten der Berechtigungsprüfung.
Überblick
Zuweisung der Funktionsberechtigungen (Ebene 2) je Benutzer, die alte Gruppenmatrix und das Laden eines Tarifs auf einen Benutzer. Der Menüpunkt erscheint nur dem Super-Admin. Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
Liste und Formular
- Liste (
permission): eine Zeile je Benutzer – Name, Gruppe, Status, aktive und gesamte manuelle Zeilen, letzte Ergänzung. form: Benutzerauswahl (alle Basisbenutzer), alleuser_feature-Zeilen des Benutzers (alle Quellen), die geladene Tarifwahl (selection), Definitionen und ihre Tarife.featuresearch: findet jede aktive Funktion unabhängig von der Einstufung, höchstens 12 Treffer (nach Route, Schlüssel, Name, Modul). Die rechte Spalte zeigt nur vorhandene Zeilen.functiontree: Baum Menügruppe → Liste → Funktion, nur mit den Routen ausMENU_GROUPS; das Formular lädt ihn nicht.
Speichern (saveUserFeatureRows())
- Je Zeile:
access_mode,offer_definition_id, Limit (count,amount,metered,unlimited), Einheitspreis, enthaltene Menge, Mehrverbrauchspreis, Rabatt, Währung, Datumsfenster. - Bestehende Zeile UPDATE (bei Änderung
is_override = 1), neue Zeile INSERT mitsource = 'manual'. - Jede Zeile des Benutzers, die nicht im POST steht, wird GELÖSCHT, unabhängig von der Quelle.
- Bei abgeschnittenem POST (Abweichung von
rows_count) wird nichts gespeichert (error_truncated). - Danach
syncCoreRouteAccess()und Rücklese-Prüfung der Zeilen (warning_not_persisted+ Protokoll).
deactivateuser: löscht alle manual-Zeilen des/der Benutzer. togglestate: Dlbtprovision::setEnabled().
Tarif laden (generate, SYSTEM)
planpreview: getPlanPreviewRows() → Zeilen aus Dlbtprovision::resolveTemplate(), ohne Schreiben. generate: materialise(user, def, plan, from, to, admin, 'subscription') im ERSETZUNGSMODUS – jede nicht im Tarif enthaltene Zeile wird gelöscht (auch manual und is_override). Berechtigung: Super oder Basis-Zugriff (Vorschau) bzw. Ändern (Speichern) UND canAction(generate).
Alte Gruppen-Endpunkte
permission.matrix (Gruppenvorlagen-Matrix; Basis-Zugriff oder Super), permission.permissions (Auswahl einer Gruppe; Zugriff), permission.groupsave (Ändern: Routenrechte der Gruppe, Abgleich Liste und Zugriff, Gruppen-Vorlagenzeilen mit Quelle role und Datumsfenster), permission.install (Ändern: Tabellen und Seed des Moduls).
Berechtigungen und Einschränkungen
- Liste und Formular verlangen das Basis-Routenrecht (Zugriff, Ändern) oder Super-Admin; im Seed ist
listUNMAPPED, der Controller prüft es aber nicht. - Die Schaltfläche
addfragtcanAction(add), der Schlüssel steht jedoch nicht im Stamm, daher ist das Ergebnis für Nicht-Super-Benutzer falsch. - Einen Inhaltsbereich (wessen Rechte man bearbeiten darf) gibt es nicht.