WorkTime ProHandbuch
Zur Anwendung

Rechte

Ein Recht erlaubt eine bestimmte Handlung. Es heißt modul:handlung, etwa time_entry:approve.

Der Katalog

Er entsteht als Kreuzprodukt aus 21 Modulen und sechs Handlungen.

Module: dashboard, employee, personnel_file, time_entry, leave, sickness, shift, cost, profitability, controlling, report, document, billing, tenant, audit, settings, api, project, payroll, gdpr, time_account.

Handlungen: read, create, update, delete, export, approve.

Die beiden Einzelrechte

Zwei Rechte fallen aus dem Kreuzprodukt heraus, weil sie eine Grenze ziehen, die es dort nicht gibt:

dashboard:overview trennt die Führungsübersicht vom eigenen Dashboard. Ohne diese Trennung könnte jeder Mitarbeiter die Kennzahlen der ganzen Firma abrufen: wie viele Kollegen heute anwesend sind, wie viele Überstunden das Unternehmen angesammelt hat.

time_account:read_self öffnet das eigene Zeitkonto. time_account:read öffnet alle und gehört der Verwaltung.

Die Wildcard

* bedeutet alle Rechte. Sie wird nicht vergeben, sondern ergibt sich: Wer die Rolle Administration, Geschäftsführung oder Super-Admin trägt, bekommt sie beim Anmelden.

Wie geprüft wird

Standardmäßig ist alles geschützt; nur ausdrücklich als öffentlich gekennzeichnete Endpunkte kommen ohne Anmeldung aus. Am Endpunkt steht, welche Rechte nötig sind — bei mehreren müssen alle vorliegen.

Die Rechte hängen an der Sitzung, nicht an der Anfrage: Sie werden beim Prüfen des Tokens aus den Rollen des Benutzers aufgelöst. Ein gesperrtes oder gelöschtes Konto kommt gar nicht erst durch.

Rechte an einem API-Schlüssel

Ein API-Schlüssel trägt eigene Geltungsbereiche, und der Wächter richtet sich beim Zugriff allein nach ihnen — nicht nach der Rolle des ausstellenden Benutzers.

Deshalb wird beim Ausstellen zweierlei geprüft: dass es den Bereich im Katalog überhaupt gibt (ein Tippfehler ergäbe sonst einen Schlüssel, der stillschweigend nichts kann), und dass der Ausstellende ihn selbst besitzt. Wer die Wildcard hat, darf jeden Bereich vergeben.

Ein Schlüssel darf nicht mehr dürfen als sein Aussteller.

Rechte im Dienst, nicht nur am Endpunkt

Das Recht öffnet die Tür, der Dienst entscheidet über den Datensatz. time_entry:create erlaubt das Buchen — für wen gebucht werden darf, prüft der Dienst: ohne employee:read nur für den eigenen Mitarbeiterdatensatz. Ohne diese zweite Prüfung genügte time_entry:create, um für beliebige Kollegen zu stempeln.