Zugriff auf Formulare¶
Für jedes Formular — oder gleich für einen ganzen Ordner oder Katalog — legst du fest, wer es öffnen darf. Das ist unabhängig von den Berechtigungen, die regeln, wer welche Funktion nutzen darf. Hier geht es um die Frage: „Wer sieht und öffnet dieses Formular?"
Die sechs Zugriffsstufen¶
| Stufe (im Dialog) | Wer kommt durch? | Typischer Einsatz |
|---|---|---|
| Anonym (öffentlich) | jeder, auch ohne Anmeldung | Kontakt- oder Anmeldeformulare auf einer Webseite |
| Jeder eingeloggte Anwender (Standard) | alle angemeldeten Benutzer | interne Standardformulare |
| Bestimmte Gruppen | Mitglieder der genannten Gruppen | „nur Buchhaltung", „nur Leitung" |
| Bestimmte Benutzer | die genannten Anmeldenamen | Einzelfälle, Testzugang |
| Bestimmte Berechtigungen | Benutzer mit mindestens einer der genannten Berechtigungen | DATEV-Formular nur mit DATEV_EXPORT |
| Gesperrt (niemand) | niemand | Wartung, archivierte Vorlagen |
Ohne eigene Regel gilt Jeder eingeloggte Anwender. Anonyme Besucher über Web-Links kommen dann nicht durch.
Formular, Ordner, Katalog — die Vererbung¶
Hat ein Formular keine eigene Regel, gilt die seines Ordners, sonst die seines Katalogs, sonst der Standard:
flowchart LR
F{Regel am<br/>Formular?} -- nein --> O{Regel am<br/>Ordner?}
O -- nein --> K{Regel am<br/>Katalog?}
K -- nein --> S[Standard:<br/>eingeloggte Anwender]
F -- ja --> R[gilt]
O -- ja --> R
K -- ja --> R
Praktisch, wenn z. B. ein ganzer Katalog Personal nur für die Gruppe
Personal gedacht ist: einmal die Katalog-Regel setzen. Einzelne Ordner oder
Formulare darin können mit eigener Regel abweichen („dieses Antragsformular
dürfen alle sehen").
Wo lege ich die Regel an?¶
- Im Formular-Editor (ein Formular): ⋯ Mehr → 🔒 Berechtigung …. Der Dialog zeigt die wirksame Regel und woher sie kommt (eigene Regel, vom Ordner, vom Katalog, Standard); du setzt eine neue oder nimmst die eigene mit Zurücksetzen wieder weg.
- In der Formularliste mit der rechten Maustaste:
- auf einem Formular → 🔒 Berechtigung … (liegt es in einem Ordner, zusätzlich 🔒 Berechtigung Ordner …),
- auf einem Ordner → 🔒 Berechtigung … für den ganzen Ordner,
- auf einem Katalog → 🔒 Berechtigung … für den ganzen Katalog.
Bei Bestimmte Gruppen / Benutzer / Berechtigungen trägst du die Namen bzw.
Codes ein (mehrere mit ; getrennt); für Berechtigungen gibt es eine
Vorschlagsliste.
Wie wirkt die Regel?¶
- Formularliste: Formulare, die jemand nicht öffnen darf, erscheinen für ihn gar nicht.
- Öffnen per Adresse: Das Backend antwortet mit „nicht gefunden" (404) — bewusst nicht mit „verboten", damit niemand erfährt, dass es das Formular gibt.
- Alles andere am Formular: Speichern, Prüfen, Drucken, Skript-Knöpfe, Auswahllisten, Anlagen, Datensatzliste und Workflow-Verlauf antworten genauso mit 404. Die Regel lässt sich also nicht umgehen, indem man die Schnittstelle direkt aufruft statt über die Oberfläche.
- Ausnahmen: Administratoren und Benutzer mit dem Recht
FORM_STUDIOkönnen die Laufzeit-Funktionen immer aufrufen, damit die Vorschau im Formular-Editor auch bei gesperrten Formularen funktioniert. Wer über einen gültigen Web-Link kommt, darf genau das verlinkte Formular benutzen.
Anonyme Besucher über Web-Links¶
Wer ein Formular über einen anonymen Web-Link öffnet, ist nicht angemeldet. Solche Besucher kommen nur an Formulare mit der Stufe Anonym (öffentlich) — auch wenn sie die Adresse eines anderen Formulars von Hand eintippen.
In Skripten und Bedingungen erkennst du sie an ctx.user.isAnonymous, etwa um
„Neuer Datensatz" oder das Blättern auszublenden.
Typische Einstellungen¶
Öffentliches Kontaktformular: Im Formular-Editor ⋯ Mehr → 🔒 Berechtigung … → Anonym (öffentlich) → Speichern. Dann einen Web-Link erzeugen — jeder kann das Formular ohne Anmeldung ausfüllen.
Ordner „Personal" nur für die Personalabteilung: In der Formularliste
Rechtsklick auf den Ordner → Berechtigung … → Bestimmte Gruppen →
Personal → Speichern. Alle Formulare im Ordner sind damit geschützt.
Vorlage vorübergehend sperren: 🔒 Berechtigung … → Gesperrt (niemand). Das Formular bleibt erhalten, ist aber für niemanden zu öffnen. Mit Zurücksetzen wieder freigeben.
An eine Berechtigung koppeln: Nutzt eine Funktion bereits eine
Berechtigung (z. B. DATEV_EXPORT), bindet man das passende Formular an
dieselbe: Bestimmte Berechtigungen → DATEV_EXPORT. Wer die Berechtigung
über seine Gruppe bekommt, sieht das Formular automatisch.
Für Integrationen: die Schnittstelle¶
Administratoren können Regeln auch per REST setzen:
GET /api/admin/acl/{typ}/{id} # typ = form | folder | catalog
PUT /api/admin/acl/{typ}/{id} # { accessMode, principals }
DELETE /api/admin/acl/{typ}/{id}
GET /api/admin/acl/list?type=form # alle Regeln eines Typs
GET /api/admin/acl/effective/form/{id} # wirksame Regel inkl. Herkunft
accessMode ist anonymous, authenticated, group, user, permission
oder denied; principals die Liste der Gruppen, Benutzer oder
Berechtigungen (bei anonymous, authenticated und denied ohne Bedeutung).