Rollen
Eine Rolle bündelt Rechte zu einer Aufgabe. Vergeben wird die Rolle, nicht das einzelne Recht.
Zu finden unter Rollen & Rechte; zugewiesen werden sie am Benutzerkonto oder am Mitarbeiter.
Die Systemrollen
| Rolle | Wofür |
|---|---|
ADMIN | Administration — alle Rechte |
GESCHAEFTSFUEHRER | Geschäftsführung — alle Rechte |
HR_MANAGER | Personal: Mitarbeiter, Personalakte, Urlaub, Krankheit, Zeitkonten, Berichte lesen |
TEAMLEITER | Führung: Zeiterfassung vollständig, Urlaub genehmigen, Schichten, Projekte, Zeitkonten lesen |
DISPONENT | Disposition: Schichten und Tagesplanung, Mitarbeiter und Zeiten lesen |
BUCHHALTUNG | Kosten, Abrechnung, Berichte, Lohn, Zeitkonten |
STEUERBERATER | nur lesen und ausleiten: Berichte, Kosten, Lohn, Abrechnung |
MITARBEITER | die eigene Zeit, eigene Anträge, das eigene Zeitkonto |
PRUEFER | Prüfprotokoll, Berichte, Zeiten, Mitarbeiter, Zeitkonten — alles nur lesend |
SUPER_ADMIN | mandantenübergreifend; im Betrieb nicht vergeben |
Administration, Geschäftsführung und Super-Admin bekommen die Wildcard *: Sie dürfen alles, ohne dass jedes einzelne Recht zugewiesen sein müsste.
Was in einer Rolle steckt
Die Zuordnung steht in packages/database/src/grundausstattung.ts — an einer Stelle, aus der sowohl der Seed als auch die Registrierung eines neuen Mandanten schöpft. Ein modul:* in dieser Liste wird gegen den Rechtekatalog aufgelöst; alle Rechte des Moduls kommen dazu.
Angelegt wird die Grundausstattung wiederholbar: Ein erneuter Aufruf überschreibt nichts und legt nichts doppelt an.
Bemerkenswerte Einzelheiten
- Mitarbeiter dürfen Projekte lesen (
project:read). Ohne dieses Recht sähen sie ihre eigene Tagesliste nicht und fänden beim Starten eines Einsatzes kein Projekt zur Auswahl. - Mitarbeiter dürfen ihr eigenes Zeitkonto sehen (
time_account:read_self) — nicht die der Kollegen. Ohne das Recht bliebe der Saldo eine Zahl, die niemand nachrechnen kann. - Die Disposition darf die Tagesplanung ändern (
project:*). Sie sagt, wer wohin fährt; die Tagesplanung gehört dazu. - Die Korrektur der eigenen Buchung hängt an
time_entry:create, nicht antime_entry:update. Mitarbeiter habenupdatenicht; hinge die Korrektur daran, könnten sie ihre eigenen Zeiten nicht berichtigen. Der Dienst begrenzt sie auf die eigene, noch nicht genehmigte Buchung.
Eigene Rollen
Über die API lassen sich Rollen lesen, aber nicht anlegen. Wer eine eigene Rolle braucht, legt sie heute in der Datenbank an; die Rechte werden dabei aus dem Rechtekatalog zugeordnet.