Gespeicherte Filter: Speicherung, Endpunkte und Berechtigungen

Datenmodell der gemeinsamen Auswahl für gespeicherte Filter, die Endpunkte zum Laden, Speichern und Löschen, die Bereinigungsgrenzen und die Berechtigungsbedingungen.

Der gespeicherte Filter ist ein gemeinsamer Dienst aller Listen: Er speichert die URL-Parameter der Liste (Filter, Sortierung, Seitengröße) und eine Momentaufnahme der Filterfelder je Benutzer und Bildschirm. Er gewährt keinen Zugriff; beim Laden gilt die eigene Berechtigung der Liste.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

TabelleRolleHauptinhalt
saved_filterGespeicherte FilterBenutzer, Bildschirm-Route, Name, die Abfrage (filter_*, sort, order, limit) und die Feld-Momentaufnahme

Ablauf

  1. savedfilter.list&page_route=…: die gespeicherten Filter des Benutzers für den Bildschirm, die Speicher- und Löschrechte und die Beschriftungen. page_route akzeptiert nur die eigene Routenform der Erweiterung.
  2. savedfilter.save (mode = new oder overwrite): Abfrage und Felder werden bereinigt (höchstens 80 Felder, je 500 Zeichen), als neu oder durch Überschreiben der eigenen Zeile gespeichert, Erfolg nach dem Zurücklesen.
  3. savedfilter.delete: Nur die eigene Zeile des Benutzers kann gelöscht werden.

Die Auswahl im Browser gehört zur gemeinsamen Skriptbibliothek und ist auf jeder Liste gleich.

Regeln und Fehler

  • Der Name ist Pflicht; beim Überschreiben muss die Zeile existieren und dem Benutzer gehören.
  • Fehlt die Tabelle: error_table.

Berechtigungen

  • Laden: canAction(list).
  • Speichern: canAction(save) und Basisrecht modify auf der Route.
  • Löschen: canAction(delete) und Basisrecht modify.
  • Inhaltsbereich: Der Filter engt nicht ein und erweitert nicht; es gilt der Inhaltsbereich der Liste. Die Schlüssel sind in keinem Seed eingestuft.