Benutzer, Gruppen & Berechtigungen¶
„Wer darf was" regeln in KCForms drei Bausteine: Benutzer, Gruppen und Berechtigungen. Gepflegt werden sie unter System-Administration → Benutzer & Zugang mit den Einträgen Benutzerverwaltung, Gruppenverwaltung und Berechtigungen.
Wie die Anmeldung selbst funktioniert (DB-, Skript-, OIDC-Login …), steht unter Anmeldung; wer ein bestimmtes Formular öffnen darf, unter Zugriff auf Formulare.
Das Modell¶
flowchart LR
B[Benutzer] -- Mitglied in --> G[Gruppe]
G -- hat --> P[Berechtigung]
G -. "ergibt ROLE_<Gruppe>" .-> A((Rechte beim<br/>Anmelden))
P -. "ergibt PERM_<Code>" .-> A
| Baustein | Was es ist | Gepflegt unter |
|---|---|---|
| Benutzer | eine Person mit Anmeldename, Name, E-Mail, Sprache und ggf. Personnummer (für die Anmeldung per BankID) | Benutzerverwaltung |
| Gruppe | ein benannter Zusammenschluss von Benutzern, z. B. Buchhaltung |
Gruppenverwaltung |
| Berechtigung | ein Code wie DATEV_EXPORT, der einer Gruppe zugeordnet wird |
Berechtigungen |
Berechtigungen hängen immer an Gruppen, nicht direkt an Benutzern. Beim
Anmelden bekommt ein Benutzer für jede seiner Gruppen die Rolle
ROLE_<Gruppe> und für jede Berechtigung dieser Gruppen PERM_<Code>.
Administrator = Mitglied der Gruppe ADMIN
Die Gruppe ADMIN ergibt die Rolle ROLE_ADMIN. Sie öffnet die gesamte
System-Administration, den Formular-Editor und alle Admin-Schnittstellen und
hat automatisch alle Berechtigungen. Einzelne Verwaltungsaufgaben lassen
sich ohne Admin-Rolle über Berechtigungen vergeben.
Gruppen¶
Gruppen bündeln Benutzer, damit Rechte nicht je Person gepflegt werden müssen. Sie wirken an mehreren Stellen:
- als Träger von Berechtigungen,
- im Formular-Zugriff (Stufe Bestimmte Gruppen),
- in Workflows als Empfänger einer Stufe (Gruppen-Sammelpostfach),
- in Skripten und Bedingungen über
ctx.user.roles.
Berechtigungen¶
Eine Berechtigung ist ein frei wählbarer Code (Großbuchstaben, Ziffern,
Unterstrich, z. B. SAP_ACCESS) mit Beschreibung. Sie wirkt erst dort, wo sie
geprüft wird — im Formular-Zugriff (Stufe Bestimmte
Berechtigungen), in Skripten oder in Bedingungen.
Berechtigungen mit eingebauter Wirkung¶
Diese Codes prüft KCForms selbst. Wer sie hat, sieht im Zahnrad-Menü und in
der System-Administration genau die passenden Bereiche — ohne Mitglied der
Gruppe ADMIN zu sein.
| Berechtigung | Wirkung |
|---|---|
PROPERTIES |
Properties pflegen („KeyUser"). |
FORM_STUDIO |
den Formular-Editor nutzen und die Formular-Bausteine pflegen (Baukasten, Druckvorlagen, Section-Repository, Skript- und Datei-Bibliotheken); dazu im Editor Web-Links erzeugen und den Formular-Zugriff einstellen. Gleichwertig mit Administrator, siehe unten. |
DB_TABLE_BROWSE |
im Formular-Editor Tabellen und Spalten der KCForms-Datenbank auswählen und die Lookup-Vorschau nutzen — im Tabellen-/Spalten-Modus. Vorschauen mit freiem SQL, WHERE-Bedingung oder Skript sowie Sitzungstabellen und Spalten mit Passwörtern oder Tokens bleiben Administratoren vorbehalten. Ohne dieses Recht trägt man Tabellennamen von Hand ein. |
SCRIPT_CONSOLE |
die Skript-Konsole nutzen. Gleichwertig mit Administrator, siehe unten. |
RECORD_VIEW_ALL |
Datensätze anderer Benutzer ansehen: in der Liste „Alle“, beim Öffnen (dann schreibgeschützt), im Änderungsprotokoll, im Druck und bei den Anlagen. Ändern und Löschen bleibt beim Eigentümer. |
REPORT_EXPORT |
Listen als CSV oder Excel exportieren. Ohne dieses Recht fehlen die Export-Knöpfe in der Liste. |
USER_MANAGE |
Benutzerverwaltung: Benutzer anlegen, ändern, löschen, Passwort setzen, Gruppen zuordnen. |
GROUP_MANAGE |
Gruppenverwaltung: Gruppen anlegen, ändern, löschen. |
PERMISSION_MANAGE |
Berechtigungen anlegen und Gruppen zuordnen. |
SYSTEM_CONFIG |
System-Einstellungen und E-Mail-Konfiguration. |
RETENTION_MANAGE |
Bereich Aufbewahrung (Gallring): Löschprotokoll einsehen und exportieren, fällige Löschungen freigeben, Datensätze sperren, Lauf starten. Die Frist je Formular stellt weiterhin der Formular-Editor ein. |
Grenzen und Schlüsselrechte
- Konten von Administratoren und die Gruppe
ADMINselbst bleiben Administratoren vorbehalten: MitUSER_MANAGEoderGROUP_MANAGEkann niemand sich oder anderen Admin-Rechte verschaffen. - Nur weitergeben, was man selbst hat: Wer nicht Administrator ist, kann einem Benutzer nur Gruppen geben, deren Berechtigungen er selbst besitzt, und einer Gruppe nur eigene Berechtigungen zuordnen. Entfernen geht immer.
SYSTEM_CONFIGumfasst nur die allgemeinen Einstellungen und die Oberfläche. Anmeldung, OIDC, BankID, Ad-hoc-Anmeldung und die Freigabeliste für HTTP-Ziele bleiben Administratoren vorbehalten.- Der SQL-Client (DB-Client) und der Transport zu anderen Systemen bleiben Administratoren vorbehalten.
FORM_STUDIO und SCRIPT_CONSOLE sind Administrator-Rechte
Mit beiden Rechten schreibt bzw. startet man Server-Skripte, die jede
Tabelle der Datenbank lesen und ändern dürfen. Damit kann sich ein
Inhaber selbst in die Gruppe ADMIN eintragen, Passwörter zurücksetzen
oder Daten anderer Benutzer ändern. Das ist kein Fehler, sondern die
Natur eines Formular-Editors mit Skripten: Wer Server-Code schreiben
darf, hat die Kontrolle über den Server.
Für den Betrieb heißt das:
- Beide Rechte nur Personen geben, denen du auch die Gruppe
ADMINgeben würdest. - Konten mit diesen Rechten schützt KCForms wie Administrator-Konten.
Mit
USER_MANAGEkann niemand ihr Passwort setzen, sie ändern, ihnen Gruppen nehmen oder sie löschen — sonst könnte man sich als ein solches Konto anmelden und auf diesem Umweg selbst Administrator werden. - Für Personen, die nur Formulare gestalten, aber keine Skripte schreiben sollen, gibt es derzeit kein eigenes, schwächeres Recht.
Beispiel-Berechtigungen¶
Die übrigen mitgelieferten Codes (SAP_ACCESS, SAP_FI_POST, DATEV_EXPORT,
HR_DATA_EDIT, LDAP_USER_CREATE, FORM_APPROVE) sind Beispiele — so steht
es auch in ihrer Beschreibung. KCForms prüft sie nicht selbst; sie wirken erst,
wenn du sie in einer Zugriffsregel, einem Skript oder einer Bedingung abfragst.
Eigene Codes legst du genauso an.
In Skripten und Bedingungen¶
ctx.user trägt Gruppen und Berechtigungen des angemeldeten Benutzers —
ohne die Präfixe ROLE_ und PERM_:
| Pfad | Inhalt | Beispiel |
|---|---|---|
ctx.user.roles |
Gruppen | ["ADMIN", "Buchhaltung"] |
ctx.user.permissions |
Berechtigungen | ["DATEV_EXPORT", "SAP_ACCESS"] |
// onValidate
if (ctx.user.permissions.indexOf("HR_DATA_EDIT") < 0) {
ctx.addError(null, "Nur die Personalabteilung darf diesen Antrag stellen.");
}
Dieselben Werte stehen in Sichtbarkeits- und Pflichtbedingungen bereit; der Regel-Baukasten hat dafür eigene Bausteine (Gruppe / Berechtigung) — siehe Regeln.
Benutzer aus LDAP¶
Benutzer und Gruppen lassen sich aus einem Verzeichnis übernehmen — per Anmelde-Skript bei jeder Anmeldung (siehe Anmeldung) oder regelmäßig per LDAP-Benutzer-Export. Damit Rollen greifen, muss der Gruppenname im Verzeichnis dem Namen der KCForms-Gruppe entsprechen (oder im Skript umgesetzt werden).
Siehe auch¶
- Anmeldung — Anmelde-Strategien, Notfall-Modus
- Zugriff auf Formulare — wer ein Formular öffnen darf