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.
| Tabelle | Rolle | Hauptinhalt |
|---|---|---|
saved_filter | Gespeicherte Filter | Benutzer, Bildschirm-Route, Name, die Abfrage (filter_*, sort, order, limit) und die Feld-Momentaufnahme |
Ablauf
savedfilter.list&page_route=…: die gespeicherten Filter des Benutzers für den Bildschirm, die Speicher- und Löschrechte und die Beschriftungen.page_routeakzeptiert nur die eigene Routenform der Erweiterung.savedfilter.save(mode=newoderoverwrite): 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.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 Basisrechtmodifyauf der Route. - Löschen:
canAction(delete)und Basisrechtmodify. - Inhaltsbereich: Der Filter engt nicht ein und erweitert nicht; es gilt der Inhaltsbereich der Liste. Die Schlüssel sind in keinem Seed eingestuft.