Rollenfilter & Feldbedingungen
Rollenfilter
Rollenfilter (im Folgenden kurz "Filter") gehören zum Autorisierungskonzept von SQUEEZE und unterstützen bei feldbasierter Authorisierung von Dokumenten.
Mittels Filtern ist es möglich für unterschiedliche Benutzergruppen andere Dokumente (auch innerhalb einer Dokumentenklasse) zu berechtigen.
Konfiguration
Jeder Rolle können beliebig viele Filter hinzugefügt werden.
Ein Filter steht im Bezug zu einer Dokumentenklasse und berechtigt den Zugriff (lesend & schreibend) auf alle Dokumente dieser Klasse.
Auswertung
Rollenfilter werden mit einem logischen Oder ausgewertet. D. h., wenn einer Rolle mehrere Filter zu der selben Dokumentenklasse zugeordnet sind, dann reicht bereits eine positive Auswertung des ersten Filters (und seiner FilterbedingungenFeldbedingungen) aus, um Zugriff auf das Dokument zu erhalten.
Dieses Verhalten gilt auch dann, wenn ein Benutzer Mitglied mehrerer Rollen mit wiederum diversen Filtern ist.
Zusammengefasst: Ein Benutzer erhält Zugriff auf ein Dokument, sobald mindestens eine seiner Rollen über einen Rollenfilter den Zugriff gewährt.
Feldbasierte BerechtigungFeldbedingungen
Soll nur auf eine Teilmenge der Dokumente einer Dokumentenklasse berechtigt werden, können feldbasierteRollenfilter Filterbedingungenum zuFeldbedingungen einem Filter hinzugefügtergänzt werden. Diese erlauben die Filterung von Dokumenten auf Basis ihrer Feldwerte.
Konfiguration
An einem Filter können beliebig viele FilterbedingungenFeldbedingungen definiert werden. Eine Bedingung ist zusammengesetzt aus:
- Dem Feld dessen Inhalt geprüft werden soll
- Dem Kompartor, der zur Prüfung genutzt wird
- Dem Vergleichswert (kann von einigen Komparatoren ignoriert werden)
Aktuell können nicht alle konfigurierbaren Filter korrekt ausgewertet werden.
Die Filterung auf ein Textfeld mit einem "Größer als" Komparator (bspw. "Lieferantenname größer als 20") würde zu einem Suchfehler führen.
Die Konfiguration solcher Filter ist zwar (noch) möglich, sollte aber vermieden werden.
Auswertung
FilterbedingungenFeldbedingungen werden wieanders auchals Rollenfilter mit einem logischen OderUnd verknüpft ausgewertet.
Es müssen also alle Bedingungen erfüllt sein, damit ein Rollenfilter den Zugriff auf ein Dokument gewährt.
Zusammenspiel mehrerer Rollenfilter
Wenn für einen Benutzer mehrere Rollenfilter (mit wiederum diversen Feldbedingungen) ausgewertet werden, dann spielen Rollenfilter ohne Feldbedingungen keine Rolle mehr und werden ignoriert.
Ein Beispiel:
- Eine Rolle hat zwei Filter. Der erste Filter hat keine Feldbedingungen. Der zweite Filter hat eine Feldbedingung.
- Bei der Auswertung dürfen Nutzer der Rolle
allenur Dokumente sehen,dadiediesdurchderdenerstezweiten Filtererlaubt.freigegebenDerwerden.
Zusammenspiel mit vererbten Rollen
Ist ein Nutzer Mitglied mehrerer Rollen (durch explizite Zuordnung oder Rollen-Vererbung), so werden Rollenfilter und Feldbedingungen dieser Rollen bei der Auswertung berücksichtigt.