Datensatzregel (Odoo)
Kurz gesagt
Eine Datensatzregel ist in Odoo eine Bedingung, die festlegt, welche Datensätze eines Modells eine Gruppe lesen, erstellen, schreiben oder löschen darf. Sie steht als zweite Ebene über den Zugriffsrechten und wird Datensatz für Datensatz geprüft; die Bedingung schreiben Sie als Domäne aus Feld, Operator und Wert (Dokumentation 20.0, für Deutschland, Österreich und die Schweiz gleich).
Das Wichtigste
- Setzt auf den Zugriffsrechten auf und filtert einzelne Datensätze eines Modells.
- Die Bedingung ist eine Domäne: Feld, Operator und Wert, verknüpft mit &, | und !.
- Vorgänge lassen sich einzeln wählen; standardmäßig sind alle vier ausgewählt, ein abgewählter Vorgang wird nicht geprüft.
- Regeln ohne Gruppe sind global und werden geschnitten; Gruppenregeln werden vereinigt, die erste schränkt ein, weitere können erweitern.
- Gruppen samt Regeln ändern Benutzer mit dem Recht Administration ‣ Zugriffsrechte; die Gruppenliste erreichen Sie im Entwicklermodus.
Eine Datensatzregel (englisch Record Rule) ist in Odoo eine Bedingung, die einer Gruppe zugeordnet wird und festlegt, welche Datensätze eines Modells diese Gruppe sehen oder ändern darf. Die deutsche Benutzerdokumentation 20.0 nennt sie die zweite Ebene, die die Zugriffsrechte der Gruppe verfeinert oder überschreibt; für Deutschland, Österreich und die Schweiz gilt dasselbe.
Was sie tut und wann sie greift
Zugriffsrechte erlauben den Umgang mit einem ganzen Modell, Datensatzregeln prüfen danach jeden einzelnen Datensatz (Entwicklerdokumentation 20.0). Je Regel legen Sie fest, für welche Vorgänge sie gilt: Für Lesen anwenden, Für Schreiben anwenden, Für Erstellen anwenden, Für Löschen anwenden. Diese vier Vorgänge sind standardmäßig ausgewählt; einen abgewählten Vorgang prüft die Regel nicht, als gäbe es sie für ihn nicht (Entwicklerdokumentation 20.0).
Eine Regel ohne Gruppe ist global: Globale Regeln werden geschnitten, jede muss erfüllt sein; mehrere globale Regeln können deshalb jeden Zugriff ausschließen. Regeln mit Gruppe werden dagegen vereinigt, eine erfüllte genügt. Die erste Gruppenregel zu einem Regelsatz schränkt deshalb ein, jede weitere kann den Zugriff wieder erweitern – aber nie über die Grenzen der globalen Regeln hinaus. Greifen die Zugriffsrechte und keine Regel, bleibt der Zugriff erlaubt (default-allow).
Beispiel: eine Domäne für eigene Verkaufsaufträge
Die Bedingung ist eine Domäne, eine Liste von Bedingungen aus Feld, Operator und Wert, zum Beispiel [('name', '=', 'ABC'), ('phone', 'like', '7620')]. Bedingungen verknüpfen Sie mit &, | und ! in Präfixschreibweise; in einer Regel stehen zusätzlich die Variablen user, company_id, company_ids und time bereit (Entwicklerdokumentation 20.0).
Beispiel (eigene Darstellung): Die Domäne [('user_id', '=', user.id)] lässt nur Datensätze durch, deren Verkäufer der angemeldete Benutzer ist. Trägt eine Gruppe, deren Zugriffsrechte Verkaufsaufträge freigeben, nur diese Regel, sieht ein Verkäufer fremde Aufträge nicht mehr. Das gilt nicht, wenn eine weitere anwendbare Gruppenregel diese Aufträge freigibt: Gruppenregeln werden vereinigt, eine erfüllte genügt.
Wo Sie Datensatzregeln sehen und ändern
Nach Aktivierung des Entwicklermodus in Odoo führt der Weg über Einstellungen ‣ Benutzer & Unternehmen ‣ Gruppen; im Gruppenformular listet die Registerkarte Datensatzregeln (englisch Record Rules) die zweite Ebene, über Zeile hinzufügen entsteht eine Regel (Benutzerdokumentation 20.0, deutsch). Zugriffsrechte ändern nur Benutzer, die im Benutzerprofil im Bereich Administration das Feld Administration auf Zugriffsrechte stehen haben; fehlt später ein handlungsfähiger Administrator, ist die Datenbank laut Dokumentation nicht mehr zu verwalten. Im Superuser-Modus sind Datensatzregeln und Zugriffsrechte umgehbar; dorthin kommt nur, wer im Bereich Administration den Zugriff Einstellungen hat.
Nicht zu verwechseln mit
- Zugriffsrecht: erlaubt den Umgang mit einem ganzen Modell; erst danach entscheidet die Datensatzregel über einzelne Datensätze (Zugriffsgruppe (Odoo)).
- Gruppe: das Bündel, dem Regeln zugeordnet werden; eine Regel ohne Gruppe ist global und gilt für alle Benutzer.
- Domäne in Feld, Filter oder Aktion: Domänen filtern auch Suchergebnisse, Auswahlfelder und Aktionen; den Zugriff beschränkt die Regel im Gruppenformular (ORM-Referenz 20.0).
Die praktische Anleitung: Datensatzregeln in Odoo: Sichtbarkeit begrenzen.