Zugriffsrechte
Zugriffsrechte (ACL-Regeln) steuern, welche Personen oder Mitglieder ein Objekt lesen, bearbeiten, löschen oder anderweitig benutzen dürfen. Dieser Abschnitt beschreibt den Dialog Zugriffsrecht erstellen / Zugriffsrecht bearbeiten auf dem Tab Zugriffsrechte eines Objekts.
Dialog öffnen
Abschnitt betitelt „Dialog öffnen“- Objekt öffnen (z. B. Dossier, Ordner, Person).
- Im Seitenmenü den Eintrag Zugriffsrechte wählen.
- Über Hinzufügen eine neue Regel erstellen oder eine bestehende Regel markieren und Bearbeiten klicken.
Der Dialog öffnet sich als Seitenpanel.
Für wen
Abschnitt betitelt „Für wen“Gibt an, für welche Personen oder Gruppen die Regel gilt:
- Jeder — gilt für alle angemeldeten Benutzer.
- Eigene Person — gilt für den Besitzer des Objekts.
- Eigene Mitglieder — gilt für alle als Mitglied eingetragenen Personen des Objekts.
- Person — gilt für eine einzelne, gezielt ausgewählte Person.
- Mitglieder von Objekt — gilt für alle Mitglieder eines anderen referenzierten Objekts (z. B. Schulklasse, Zugriffsgruppe).
Genau eine dieser Optionen muss gewählt sein.
Zugriffsrechte
Abschnitt betitelt „Zugriffsrechte“Jedes Recht kann auf einen von drei Zuständen gesetzt werden:
- Erlaubt — Recht wird ausdrücklich gewährt.
- Verboten — Recht wird ausdrücklich entzogen (schlägt Erlaubt).
- Nicht definiert — Regel trifft für dieses Recht keine Aussage (Vererbung wirkt weiter).
Abhängigkeiten zwischen Rechten
Abschnitt betitelt „Abhängigkeiten zwischen Rechten“Wird ein Recht auf Erlaubt gesetzt, werden abhängige Rechte automatisch mitgesetzt:
- Bearbeiten setzt Lesen auf Erlaubt.
- Löschen, Einfügen und Status ändern setzen Bearbeiten und Lesen auf Erlaubt.
Liste der verfügbaren Rechte
Abschnitt betitelt „Liste der verfügbaren Rechte“| Code | Anzeigename | Bedeutung |
|---|---|---|
READ | Lesen | Objekt sehen und öffnen |
UPDATE | Bearbeiten | Felder des Objekts ändern |
DELETE | Löschen | Objekt löschen |
INSERT | Einfügen | Unterobjekte anlegen |
PROCESS | Verarbeiten | Objekt-Aktionen ausführen |
STATUS | Status ändern | Objektstatus wechseln (aktiv, archiviert …) |
TAG | Tags setzen und ändern | Tags zuordnen |
READALL | Alles lesen | Auch inaktive und ungültige Objekte lesen |
READSPECIAL | Spezielle Daten lesen | Geschützte Felder lesen |
READFILE | Dateien lesen | Originaldatei herunterladen |
READMEMBER | Mitglieder lesen | Mitgliedschaften des Objekts einsehen |
READACCOUNTING | Verrechnung lesen | Verrechnungs-Daten einsehen |
READCALENDAR | Kalender lesen | Kalendereinträge lesen |
UPDATECALENDAR | Kalender bearbeiten | Kalendereinträge bearbeiten |
Weitere Optionen
Abschnitt betitelt „Weitere Optionen“- Beschreibung — Freitext, zur Dokumentation der Regel.
- ACL-Code — technischer Code, optional (für Import/Export und Regel-Referenzen).
- Rekursiv — Regel wirkt auch auf alle untergeordneten Objekte (Standard: aktiv).
- Nur auf untergeordnete Objekte anwenden — Regel gilt ausschliesslich für die Kinder, nicht für das Objekt selbst.
Technischer Hinweis: Herkunft der Rechte-Liste
Abschnitt betitelt „Technischer Hinweis: Herkunft der Rechte-Liste“Dieser Abschnitt ist für Entwickler und Administratoren.
Die Liste der im Dialog angezeigten Rechte wird zur Laufzeit aus der Tabelle Object.AclRightDefs via GraphQL-Query aclRightDefs geladen. Reihenfolge richtet sich nach ORDERNR, der angezeigte Name nach RIGHTNAME.
- Backend-Entity:
libs/core/api/src/auth/entity/AclRightDefs.ts— TypeORM/TypeGraphQL-Mapping aufObject.AclRightDefs. - Resolver:
libs/core/api/src/auth/resolver/AclRightDefsResolver.ts— liefert die QueryaclRightDefs. - Frontend-Service:
libs/module/object/gui/src/object/form/object-detail-acls/services/acl-right-defs.service.ts(AclRightDefsService) — cached die Liste und stellt ein Signal zur Verfügung. - Enum bleibt bestehen:
libs/core/api/src/auth/enum/AccessRight.ts— wird weiter als Typ-Constraint für Backend-Logik und die Abhängigkeits-Regeln im Dialog (Update→Read, Delete/Insert/Status→Update) genutzt.
Persistiert werden die Rechte pro ACL-Regel in der Tabelle Object.AclRight (Spalten AclID, AclRight, State), referenziert gegen die Stammtabelle Object.AclRightDefs.
Neues Recht hinzufügen
Abschnitt betitelt „Neues Recht hinzufügen“- Zeile in
Object.AclRightDefsper Migration (Database/Scripts/ChangelogAtoms/) einfügen — FelderAclRight,RightName,OrderNr,Relevance. - Falls das Recht in Backend-Logik (Auth-Checks, Dependency-Regeln im
rights-grid) referenziert werden soll: Wert im EnumAccessRightergänzen. - Kein Frontend-Deploy nötig, damit das Recht im Dialog erscheint — es reicht die Migration.
Mehrsprachigkeit (offen)
Abschnitt betitelt „Mehrsprachigkeit (offen)“RIGHTNAME ist aktuell nur auf Deutsch. Eine separate Übersetzungs-Tabelle (AclRightDefTranslate o. ä.) ist geplant; bis dahin erscheint der DB-Wert direkt im Dialog.