Worum es geht
CRMS verwaltet keine Rollen. Es bekommt von CIAS, wer anfragt, und prüft dann nur: Steht die nötige Rolle in der Liste dieser Person? Welche Rolle für was nötig ist, stellst du je Projekt im Hub ein.
Woher CRMS die Person kennt
Bei jeder Anfrage fragt CRMS CIAS nach dem Aufrufer, also der Person hinter der Anfrage. CIAS liefert vier Dinge, alle aus dem geprüften Token:
| Feld | Bedeutung |
|---|---|
| angemeldet | ob es überhaupt eine Person gibt. Ohne sie antwortet CRMS mit 401 crms-authentication-required |
| Person | wer anfragt, so wie der Identity Provider sie nennt. CRMS vermerkt sie an jeder Revision, Freigabe und jedem Dokument |
| Mandant | der Mandant der Person, oder keiner |
| Rollen | die Realm-Rollen und die Rollen des Clients zusammen in einer Liste |
Eine Plattform-Administratorrolle zählt dabei nur, wenn sie als Realm-Rolle im Token steht. Über die Organisation eines Mandanten kann sie niemand bekommen. Mehr dazu unter Effektive Rollen und Die Realm-Rollen der Plattform.
Wann: CRMS läuft im Prozess der Anwendung
-
1Benutzer→Anwendungschickt eine Anfrage mit seinem Token
-
2CIASprüft das Token und legt Person, Mandant und Rollen fest
-
3CRMSliest den Aufrufer von CIAS. Die Client-Rollen sind die des Clients der Anwendung
Wann: CRMS läuft als eigener Dienst, die Anwendung nutzt crms-client
-
1Anwendung→CRMSreicht das Token der Person unverändert weiter
-
2CIAStauscht das Token im CRMS-Dienst gegen eines für dessen eigenen Client
-
3CRMSliest den Aufrufer. Die Client-Rollen sind die, die die Person am Client des CRMS-Dienstes hat
Wie der Tausch funktioniert, steht unter Token-Tausch.
Alle Rollen auf einen Blick
| Was | Feld im Hub | Variable | Standard | Wie viele |
|---|---|---|---|---|
eigene Vorlagen schreiben (Scope USER) | templateRoleUser | CODAMAI_CRMS_TEMPLATE_ROLES_USER | crms-template-personal | genau eine |
Vorlagen des Mandanten schreiben (Scope TENANT) | templateRoleTenant | CODAMAI_CRMS_TEMPLATE_ROLES_TENANT | crms-template-author | genau eine |
Systemvorlagen schreiben (Scope SYSTEM) | – | – | die Plattform-Administratorrollen aus CIAS | die von CIAS |
| eine Freigabestufe bestätigen oder zurückweisen | role einer Stufe in approvalStages | – | – | eine je Stufe |
| Dokumente auflisten, lesen, prüfen | documentRoleRead | CODAMAI_CRMS_REST_DOCUMENT_ROLES_READ | crms-document-reader | Liste |
| Legal Hold setzen und aufheben | documentRoleHold | CODAMAI_CRMS_REST_DOCUMENT_ROLES_HOLD | crms-document-custodian | Liste |
| Dokumente löschen | documentRoleErase | CODAMAI_CRMS_REST_DOCUMENT_ROLES_ERASE | crms-document-eraser | Liste |
Der Hub schreibt deine Werte beim Build als Standard in die Konfiguration. Die Variable kann ihn in einer Umgebung überschreiben. Bei den Dokumentrollen ist sie eine kommagetrennte Liste, und eine passende Rolle reicht. Eine leere Liste lässt niemanden zu. Wo du die Felder findest, steht unter Das CRMS-Modul im Hub.
Rendern braucht keine Rolle. Jede angemeldete Person darf rendern, und zwar mit jeder Vorlage, die sie sieht.
Sehen: welche Vorlagen eine Person findet
Eine Vorlage gehört einem Scope: dem System, einem Mandanten oder einer einzelnen Person in einem Mandanten. Ob du sie siehst, hängt nur davon ab, wem sie gehört. Eine Rolle braucht es dafür nicht.
| Scope der Ausgabe | Gehört sie zu dir? | Siehst du sie? |
|---|---|---|
| SYSTEM | – | ja, jede angemeldete Person |
| TENANT | dein Mandant | ja |
| TENANT | anderer Mandant | nein, 404 template-not-found |
| USER | du selbst im selben Mandanten | ja |
| USER | eine andere Person | nein, 404. Ausnahme beim Freigeben, siehe unten |
Schreiben: Ausgaben, Entwürfe, Einreichen
Schreiben heißt: eine Ausgabe oder Variante anlegen, den Entwurf lesen und speichern, einreichen, zurücksetzen und stilllegen. Dafür prüft CRMS drei Dinge nacheinander:
-
1CRMSSiehst du die Ausgabe? Sonst 404
template-not-found -
2CRMSIst ihr Scope in dieser Installation zugelassen? Sonst 422
template-scope-not-admitted -
3CRMSHast du die Schreibrolle dieses Scopes? Sonst 403
template-write-denied -
4CRMSDie Änderung wird ausgeführt und mit deinem Namen in die Kette geschrieben
Eine neue Ausgabe im Scope TENANT braucht außerdem einen Mandanten im Token, sonst 422 template-tenant-required.
Systemvorlagen schreiben die Plattform-Administratoren, die CIAS für die Installation nennt. CRMS hat dafür keine eigene Rolle. Ist der Scope SYSTEM zugelassen und nennt CIAS keine Administratorrolle, startet die Anwendung nicht.
Freigeben: die Rolle der Stufe
Eine eingereichte Revision durchläuft die Freigabestufen ihres Scopes. Jede Stufe nennt eine Rolle. Bestätigen und Zurückweisen darf nur, wer die Rolle der aktuellen Stufe hat. Die Schreibrolle braucht es dafür nicht.
| Prüfung | Sonst |
|---|---|
| Du siehst die Ausgabe, oder sie ist die persönliche Vorlage einer Person aus deinem Mandanten | 404 template-not-found |
| Die Revision wartet auf Freigabe | 409 template-revision-not-in-review |
| Du hast diese Revision noch nicht bestätigt | 409 approval-already-given |
| Du hast die Rolle der aktuellen Stufe | 403 approval-role-missing |
| Die Stufe schließt die Autorin nicht aus, oder du bist nicht die Autorin | 403 approval-author-excluded |
Die Ausnahme in der ersten Zeile ist Absicht: Persönliche Vorlagen prüfen die Prüfer des Mandanten. Wie Stufen, Mindestzahl der Prüfer und Bedeutung einer Freigabe aussehen, steht unter Die Freigabe.
Dokumente: drei Rollen statt einer
Wer Prüfberichte liest, ist nicht automatisch die Person, die sie für ein Gericht einfriert. Und auch nicht die, die die Dokumente einer betroffenen Person löscht. Darum gibt es drei Rollen.
- Das Archiv selbst prüft die Rolle, bevor es etwas nachschlägt. Das gilt gleich, ob deine Anwendung es eingebettet aufruft, ob die Anfrage über
/crms/documentskommt oder übercrms-clientbeim CRMS-Dienst. Eine Ablehnung (403document-access-denied) verrät nicht, ob es das Dokument gibt. - Das Archiv arbeitet danach nur im Mandanten der Person. Ein Dokument eines anderen Mandanten gibt es für sie nicht: 404
document-not-found. - Ein Plattform-Administrator hat keine Dokumentrolle, nur weil er Administrator ist.