WorkTime ProHandbuch
Zur Anwendung

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

RolleWofür
ADMINAdministration — alle Rechte
GESCHAEFTSFUEHRERGeschäftsführung — alle Rechte
HR_MANAGERPersonal: Mitarbeiter, Personalakte, Urlaub, Krankheit, Zeitkonten, Berichte lesen
TEAMLEITERFührung: Zeiterfassung vollständig, Urlaub genehmigen, Schichten, Projekte, Zeitkonten lesen
DISPONENTDisposition: Schichten und Tagesplanung, Mitarbeiter und Zeiten lesen
BUCHHALTUNGKosten, Abrechnung, Berichte, Lohn, Zeitkonten
STEUERBERATERnur lesen und ausleiten: Berichte, Kosten, Lohn, Abrechnung
MITARBEITERdie eigene Zeit, eigene Anträge, das eigene Zeitkonto
PRUEFERPrüfprotokoll, Berichte, Zeiten, Mitarbeiter, Zeitkonten — alles nur lesend
SUPER_ADMINmandantenü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 an time_entry:update. Mitarbeiter haben update nicht; 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.