Admin-Rahmen, Anfragevorbereitung und gemeinsame Bausteine

Die Vorbereitung am Anfang jeder Admin-Anfrage, die Ereignisbehandler von linkem Menü und Kopfzeile sowie die gemeinsamen Bausteine: Fehlerseite, Seite ohne Berechtigung, Dokument-Modal, Firmen- und Shop-Auswahl.

Der Admin-Rahmen besteht aus drei Schichten: der Vorbereitung am Anfang jeder Anfrage, den Ereignisbehandlern, die Menü und Kopfzeile erweitern, und den gemeinsamen Bausteinen, die die Module wiederverwenden. Eigene Funktionsberechtigungen haben sie nicht; es entscheidet die Berechtigung des aufrufenden Moduls.

Anfragevorbereitung

Am Anfang jeder Admin-Anfrage, in dieser Reihenfolge:

  1. Zeitzone Europe/Budapest, auch für die Datenbankverbindung.
  2. JSON- und Fehler-Sicherheitsnetz aktiviert; die eingebaute Fehlerseite auf die eigene Admin-Fehlerseite umgeleitet.
  3. Erkennung einer Auslieferung: Ändert sich die Signatur des Dateibestands, werden Vorlagen-Cache und OPcache geleert.
  4. Registrierung der Dienstbibliotheken (Berechtigung, Funktionskatalog, Abonnement, Kontingent, Zahlung, Update und etwa 45 weitere); eine fehlende oder beschädigte Datei erzeugt eine aussagekräftige Protokollzeile.
  5. Wartungswächter während eines Updates: AJAX-Anfragen erhalten 503-JSON (MAINTENANCE), Seiten werden zum Update-Manager umgeleitet.
  6. Beim vollständigen Seitenaufruf (Dashboard oder eigene Seite) automatische Migration und Ergänzung der Routenrechte des Hauptadministrators anhand der auf dem Datenträger gefundenen Controller.
  7. Einmal pro Sitzung Selbstheilung der Basis-Routenrechte des Benutzers.
  8. Angebotswächter: Ist auf einer vollständigen Seite die Listenfunktion gesperrt (Grund: Abonnement oder Schulden), Umleitung zur Angebotsseite mit gesperrter Route, Grund und Rücksprungadresse.

Gemeinsame Bausteine

BausteinVerhalten
common/adminerrorFehlerseite im Admin-Rahmen; mit debug-Berechtigung die letzten 25 Zeilen des Fehlerprotokolls (höchstens 8 KB vom Dateiende). Scheitert der Rahmen selbst, minimales HTML.
common/deniedSeite ohne Berechtigung im Rahmen; ist der Oberflächenmodus upsell und besteht subscription/upsell + order, ein Link zum Angebot mit reason=subscription.
common/docmodalMarkup und Beschriftungen des gemeinsamen Dokument-Modals; es lädt keine Daten, die Bytes liefert der Vorschau-Endpunkt der Dokumentenzentrale.
common/companypickerrows: aktive Firmen der Gruppe im Inhaltsbereich, wenn canAction die Berechtigung des Aufrufers gewährt; respond: JSON in drei Formen; addlink: Link zum Firmenformular nur mit canSave('company/company', 0).
common/storepickerShop-Kontrollkästchen (0 = „Default“); gespeichert wird im besitzenden Modell.

Berechtigungen

Bausteine und Vorbereitung haben keinen eigenen Funktionsschlüssel. Die Details der Fehlerseite hängen am debug-Schlüssel des Moduls, der in den Seeds nicht eingestuft ist.

Verwendete Daten

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation. Die Vorbereitung nutzt die Tabellen setting und user_group (Routenrechte) sowie die Tabellen des Migrationsprotokolls.