Zum Inhalt

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_STUDIO kö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.

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).

Siehe auch