chore(repo): sync wireframe structure and references

This commit is contained in:
david committed 2026-08-08 03:09:06 +02:00
1 parent 05d2d5777f
commit d953a79e95
453 files changed
+36639 -621

No files matched your search

@@ -0,0 +1,65 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: D01
screen: Rollen-Dropdown in Mitarbeiterliste
typ: Inline-Zustand
umsetzung: Nur dokumentieren
status: Validiert
route: in S01, kein eigener Subframe-Screen
subframe: "-"
---
# D01 - Rollen-Dropdown in Mitarbeiterliste
## Ziel
Der Admin kann die Rolle eines Mitarbeiters direkt in der Liste aendern und bei Bedarf zur Rollenverwaltung springen.
## Pattern / Archetyp
Inline Select / Dropdown in Tabelle.
## Daten
- aktuelle Rolle(n) des Mitarbeiters
- verfuegbare Rollen
- Rolle `Admin`
- Rollen, die wegen Policy nicht gesetzt oder entfernt werden duerfen
## Aktionen
- Rolle auswaehlen
- `Rollen und Berechtigungen bearbeiten` -> S02
- Dropdown schliessen
## Verhalten
- Dropdown zeigt aktuelle Rolle und verfuegbare Rollen.
- Unterhalb der Rollen steht ein Eintrag `Rollen und Berechtigungen bearbeiten`.
- Dieser Eintrag navigiert zu `Settings -> Mitarbeiter`, Tab `Rollen und Berechtigungen`.
- Wenn ein Rollenwechsel den letzten Admin entfernen wuerde, wird V01 genutzt.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Standard | Rollen auswahlen | Nur dokumentieren |
| Speichern | Rollenwechsel wird gespeichert | Wiederverwenden |
| Keine Berechtigung | Dropdown disabled oder nicht sichtbar | Nur dokumentieren |
| Letzter Admin | Rollenwechsel blockiert | V01 |
## Permissions / Gates
- Rollenwechsel braucht Rollen-/Mitarbeiter-Berechtigung.
- Technische Admin-Schutzregeln koennen Rollenwechsel blockieren.
## Subframe
- Kein eigener Subframe-Screen. Das Dropdown ist direkt in `S01 Mitarbeiterliste` enthalten; dieser D01-Eintrag dokumentiert nur das geoeffnete Inline-Verhalten.
## Notizen
Kein separates Rollen-Modal aus der Mitarbeiterliste. Rollen bearbeiten passiert in S02/M02.
@@ -0,0 +1,61 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: D03
screen: Rolle in Nutzung blockiert
typ: Admin Blocker
umsetzung: Nur dokumentieren
status: In Subframe
route: von S02/M02
subframe: "https://app.subframe.com/f023064a5ca0/design/0363300b-6455-4fd9-9102-659d0a66b0ea/edit"
---
# D03 - Rolle in Nutzung blockiert
## Ziel
Der Admin versteht, warum eine Rolle nicht geloescht werden kann.
## Pattern / Archetyp
Kleines Blocker-Modal / Inline-Blocker.
## Daten
- Rolle
- Anzahl zugewiesener Mitarbeiter
## Aktionen
- `Verstanden`
- Modal schliessen
## Inhalt / Copy-Richtung
Headline: `Rolle kann nicht geloescht werden`
Text: `Diese Rolle kann nicht geloescht werden, solange Mitarbeiter zugewiesen sind. Weise die Mitarbeiter zuerst manuell einer anderen Rolle zu.`
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Rolle in Nutzung | Loeschen wird blockiert | Nur dokumentieren |
| Rolle ohne Mitglieder | Loeschen ist moeglich | Nur dokumentieren |
## Permissions / Gates
- Loeschen ist nur fuer berechtigte Admins sichtbar.
- Rolle `Admin` hat keine Loeschen-Aktion.
## Subframe
- Umsetzung als echtes Subframe-Dialog-Modal: `DialogLayout` -> `Dialog` -> `Dialog.Content`.
- Kein Fake-Modal ueber einer Rollenliste, kein Blur-/Overlay-Hintergrund als eigene Page.
- Subframe: [D03 Rolle in Nutzung blockiert](<https://app.subframe.com/f023064a5ca0/design/0363300b-6455-4fd9-9102-659d0a66b0ea/edit>)
## Notizen
Ersatzrolle waehlen und Bulk-Reassign sind Backlog/V2.
@@ -0,0 +1,72 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: M01
screen: Mitarbeiter einladen
typ: Modal
umsetzung: Bauen
status: In Subframe
route: von S01
subframe: "https://app.subframe.com/f023064a5ca0/design/0338fed6-2624-4e92-9d42-0b959fafe8c2/edit"
---
# M01 - Mitarbeiter einladen
## Ziel
Der Admin laedt einen neuen Mitarbeiter in den Workspace ein und weist direkt die passende Rolle zu.
## Pattern / Archetyp
A5 Modal / Invite Form.
## Daten
- E-Mail-Adresse, Pflichtfeld
- optional Name
- optional Abteilung
- Rolle, Pflichtauswahl mit `Admin` und selbst angelegten Rollen
- aktueller Workspace
## Aktionen
- Einladung senden
- abbrechen / Modal schliessen
- Rolle auswaehlen
## Layout / Inhalt
1. Headline `Mitarbeiter einladen`.
2. Hinweis, dass die Einladung fuer den aktuellen Workspace gilt.
3. Felder: E-Mail, Name optional, Abteilung optional, Rolle.
4. Aktionen: `Einladung senden`, `Abbrechen`.
## Toasts / Action-Feedback
- Erfolg: Toast `Einladung wurde gesendet`.
- Danach zurueck zu S01; Nutzer erscheint mit Status `Eingeladen`.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Leer | Pflichtfelder leer | Bauen |
| Validierungsfehler | E-Mail fehlt/ungueltig, Rolle fehlt | Bauen |
| Einladung existiert | Hinweis mit Option erneut senden | Nur dokumentieren |
| Laden | Einladung wird gesendet | Wiederverwenden |
| Fehler | Einladung konnte nicht gesendet werden | Nur dokumentieren |
## Permissions / Gates
- Admin oder Rolle mit Mitarbeiter-einladen-Berechtigung.
## Subframe
- Umsetzung als echtes Subframe-Dialog-Modal: `DialogLayout` -> `Dialog` -> `Dialog.Content`.
- Kein Fake-Modal per `Card`, duplizierter Mitarbeiterliste oder manuell nachgebautem Overlay.
## Notizen
Kein eigener Fullscreen. Der Invite bleibt ein kompaktes Modal aus der Mitarbeiterliste.
@@ -0,0 +1,105 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: M02
screen: Rolle bearbeiten
typ: Grosses Modal
umsetzung: Bauen
status: In Subframe
route: von S02 Bearbeiten, M04A Rolle anlegen oder M04B Rolle duplizieren
subframe: "https://app.subframe.com/f023064a5ca0/design/9a9873e3-d790-4373-b8c2-fadd3b82cbe6/edit"
---
# M02 - Rolle bearbeiten
## Ziel
Der Admin bearbeitet eine vorhandene eigene Rolle oder konfiguriert nach M04A/M04B die Berechtigungen einer neu angelegten bzw. duplizierten Rolle. Die Systemrolle `Admin` ist geschuetzt.
## Pattern / Archetyp
Grosses Modal / Role Editor.
## Daten
- Rollenname
- Beschreibung
- Typ als Information: Systemrolle oder Eigene Rolle
- Permission-Bereiche als Arbeitsgeruest
- konkrete Permission-Zeilen nach Beispielmuster
## Aktionen
- von `M04A`: neue Rolle mit Basisdaten uebernehmen
- von `M04B`: duplizierte Rolle mit Basisdaten und kopierten Berechtigungen uebernehmen
- bei `Bearbeiten`: direkt den grossen Permission-Editor oeffnen
- speichern
- abbrechen / Modal schliessen
- Rolle loeschen, wenn erlaubt
- Permission-Auswahl aendern
- Permission suchen
- Sidebar-Bereich oeffnen
## Layout / Inhalt
1. Grosser Modal-Flow ueber S02, mit Schliessen-Icon.
2. Entry `Bearbeiten`: direkt in den grossen Permission-Editor springen.
3. Entry `Rolle anlegen`: kommt aus `M04A Rolle anlegen` mit Basisdaten.
4. Entry `Duplizieren`: kommt aus `M04B Rolle duplizieren` mit Basisdaten und kopierten Berechtigungen.
5. Im grossen Editor steht oben der Bereich `Rolle` mit Rollenname, Beschreibung, Bereich/Kategorie und Typ-Info; diese Daten bleiben dort bearbeitbar.
6. Links steht eine Sidebar nach Apple-Settings-Muster: Suchfeld oben, darunter Bereiche.
7. Die Suche durchsucht alle Permissions und filtert bereichsuebergreifend.
8. Hauptbereich scrollt von `Rolle` zu `Allgemein` und weiter in einzelne Rechtebereiche.
9. Rechtebereiche: Allgemein, Mitarbeiter, Rollen und Berechtigungen, Workspace Settings, Abrechnung, Audit & Sicherheit, Integrationen/API, Dateien, Aufgaben.
10. Footer mit `Speichern` und `Abbrechen`.
## Permission-Zeilenmuster
Eine Permission wird konkret vorgebaut, damit das Muster klar ist:
| Element | Inhalt |
|---|---|
| Ueberschrift | `Mitarbeiter ansehen` |
| Beschreibung | `Darf Mitarbeiterliste und Mitarbeiterprofile im Workspace lesen.` |
| Control | Toggle-Switch `An/Aus` |
Verhalten:
- `Aus`: kein Zugriff.
- `An`: Zugriff ist erlaubt.
- Abstufungen wie `Read-only` oder `Bearbeiten` koennen spaeter als Advanced Control ergaenzt werden, wenn die Permission nicht binaer ist.
- Weitere Permissions werden Development-seitig nach diesem Muster ergaenzt.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Neue Rolle bearbeiten | nach M04A atomare Permissions setzen | Bauen |
| Rolle bearbeiten | direkt im Permission-Editor mit vorhandenen Werten | Bauen |
| Rolle duplizieren | nach M04B mit vorausgefuellten Basisdaten und kopierten Berechtigungen in den Editor | Bauen |
| Vorlage verwenden | WIP-Vorlage kann als Startpunkt fuer eigene Rolle dienen | Nur dokumentieren |
| Admin-Rolle | kritische Felder/Loeschen geschuetzt | Nur dokumentieren |
| Rollenname existiert | Inline-Fehler am Namen | Nur dokumentieren |
| Rolle in Nutzung loeschen | Loeschen blockiert | D03 |
## Permissions / Gates
- Nur Admins oder Rollen mit Rollen-/Berechtigungsverwaltung.
- Systemrolle `Admin` darf nicht geloescht werden.
## Subframe
- Finale Subframe-Seite fuer Umsetzung: `M02 Rolle bearbeiten`.
- Umsetzung als echtes grosses Subframe-Modal mit `DialogLayout` + `Dialog.Content`, nicht als freie Page-Shell.
- Der Screen enthaelt realistischere Permission-Vorlagen: laengere Beschreibungen, Accordion-Untergruppen, erweiterte Einstellungen und Zugriffsstufen wie `Kein Zugriff`, `Nur lesen`, `Voller Zugriff`.
- Die alten M02-Referenzvarianten wurden aus Subframe geloescht, damit der Admin-RBAC-Flow clean bleibt.
| Screen | Subframe |
|---|---|
| M02 Rolle bearbeiten | [Subframe](<https://app.subframe.com/f023064a5ca0/design/9a9873e3-d790-4373-b8c2-fadd3b82cbe6/edit>) |
## Notizen
Die Permission-Bundles sind fuer v1 ein Arbeitsgeruest, kein finaler Rechtekatalog. Wichtig ist das UI-Muster und der Einstieg fuer Development.
@@ -0,0 +1,72 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: M03
screen: Mitarbeiter deaktivieren
typ: Confirm Modal
umsetzung: Bauen
status: In Subframe
route: von S01
subframe: "https://app.subframe.com/f023064a5ca0/design/11e3f3dc-451b-4abb-aedf-3aad63704c51/edit"
---
# M03 - Mitarbeiter deaktivieren
## Ziel
Der Admin bestaetigt bewusst, dass ein Mitarbeiter keinen Zugriff mehr auf den Workspace haben soll.
## Pattern / Archetyp
A5 Confirm-Modal.
## Daten
- Name des Mitarbeiters
- E-Mail des Mitarbeiters
- aktueller Status
- ob der Mitarbeiter letzter Admin ist
## Aktionen
- `Deaktivieren`
- `Abbrechen`
- Modal schliessen
## Layout / Inhalt
1. Headline `Mitarbeiter deaktivieren?`
2. Name und E-Mail des Mitarbeiters.
3. Kurzer Hinweis: Nach der Deaktivierung hat der Mitarbeiter keinen Zugriff mehr auf den Workspace.
4. Hinweis: Der Mitarbeiter bleibt in der Liste mit Status `Deaktiviert` sichtbar.
5. Aktionen: Danger-Button `Deaktivieren`, sekundar `Abbrechen`.
## Toasts / Action-Feedback
- Erfolg: Toast `Mitarbeiter wurde deaktiviert`.
- S01 zeigt danach Status `Deaktiviert`.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Confirm | kurze Sicherheitsfrage | Bauen |
| Laden | Deaktivierung wird gespeichert | Wiederverwenden |
| Letzter Admin | Aktion wird blockiert | V01 |
| Fehler | Deaktivierung fehlgeschlagen | Nur dokumentieren |
## Permissions / Gates
- Nur Admins oder Rollen mit Mitarbeiter-deaktivieren-Berechtigung.
- Letzter Admin darf nicht deaktiviert werden.
## Subframe
- Umsetzung als echtes Subframe-Confirm-Modal: `DialogLayout` -> `Dialog` -> `Dialog.Content`.
- Kein Fake-Modal per freiem Container, duplizierter Mitarbeiterliste oder manuell nachgebautem Overlay-Hintergrund.
## Notizen
Kein Reassign in v1. Offene Verantwortlichkeiten bleiben Backlog/V2.
@@ -0,0 +1,85 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: M04A
screen: Rolle anlegen
typ: Modal Step
umsetzung: Bauen
status: In Subframe
route: von S02 CTA Rolle anlegen
subframe: "https://app.subframe.com/f023064a5ca0/design/479ee52d-8d73-46e9-9a9b-a8798a22d764/edit"
---
# M04A - Rolle anlegen
## Ziel
Der Admin klaert die Basisdaten einer komplett neuen eigenen Rolle, bevor er in den grossen Permission-Editor wechselt.
## Pattern / Archetyp
Modal Step / Create Role Basics.
## Daten
- Rollenname
- Beschreibung
- Bereich/Kategorie, z. B. Team, Verwaltung, Operativ
- optionaler Vorlagenbereich als Work in Progress
## Aktionen
- `Weiter zu Berechtigungen` -> M02 Rolle bearbeiten
- `Abbrechen`
- Modal schliessen
- optionale Vorlage als WIP-Platzhalter ansehen, falls spaeter verfuegbar
## Layout / Inhalt
1. Modal ueber `S02 Rollen und Berechtigungen`, mit Schliessen-Icon.
2. Headline: `Rolle anlegen`.
3. Kurztext: Die Basisdaten helfen, die Rolle spaeter in der Rollenliste und im Editor eindeutig zuzuordnen.
4. Formular:
- Rollenname als Pflichtfeld.
- Beschreibung als optionales Textfeld.
- Bereich/Kategorie als Select.
5. Optionaler Bereich `Vorlage verwenden`:
- sichtbar als WIP/Platzhalter.
- keine Vorlage wird als feste Seed-Rolle angelegt.
- Vorlagen dienen spaeter nur als Startpunkt fuer eigene Rollen.
6. Footer:
- Primaer: `Weiter zu Berechtigungen`.
- Sekundaer: `Abbrechen`.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Neue Rolle | leeres Formular fuer eigene Rolle | Bauen |
| Rollenname fehlt | Inline-Fehler am Namen | Bauen |
| Rollenname existiert | Inline-Fehler am Namen | Nur dokumentieren |
| Vorlage verwenden | WIP-Vorlagenbereich als spaeterer Startpunkt | Nur dokumentieren |
## Permissions / Gates
- Nur Admins oder Rollen mit Rollen-/Berechtigungsverwaltung.
- Systemrolle `Admin` wird hier nicht erstellt.
## Subframe
- Existierende Subframe-Seite fuer `M04A Rolle anlegen`.
- Wird als echter Modal-Step im Admin-RBAC-Flow genutzt.
- Dialog-QA: Varianten muessen `DialogLayout` -> `Dialog` -> `Dialog.Content` nutzen; keine simulierten Overlay-/Card-Modals.
- Subframe-Stand: M04A ist optisch an den M04B-Duplikat-Screen angeglichen, aber ohne Duplikat-Modus.
| Screen | Subframe |
|---|---|
| M04A Rolle anlegen | [Subframe](<https://app.subframe.com/f023064a5ca0/design/479ee52d-8d73-46e9-9a9b-a8798a22d764/edit>) |
## Notizen
Dieser Screen ist nur fuer den Einstieg `Rolle anlegen`. `Duplizieren` ist ein eigener Screen `M04B Rolle duplizieren`; `Bearbeiten` geht weiterhin direkt nach `M02 Rolle bearbeiten`.
Design-Stand: Layout, Abstaende, Footer und Dialog-Struktur entsprechen dem final angepassten M04B-Duplikat-Screen. Inhalte bleiben Create-Mode: keine Quellrolle, kein `Kopie von ...`, kein Hinweis auf kopierte Berechtigungen.
@@ -0,0 +1,78 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: M04B
screen: Rolle duplizieren
typ: Modal Step
umsetzung: Bauen
status: In Subframe
route: von S02 Zeilenaktion Duplizieren
subframe: "https://app.subframe.com/f023064a5ca0/design/610d08e6-5c6a-44d3-9b29-220664393ea0/edit"
---
# M04B - Rolle duplizieren
## Ziel
Der Admin nutzt eine bestehende eigene Rolle als Startpunkt, passt die Basisdaten an und landet danach im grossen Permission-Editor mit kopierten Berechtigungen.
## Pattern / Archetyp
Modal Step / Duplicate Role Basics.
## Daten
- Quellrolle
- Rollenname, vorausgefuellt z. B. als `Kopie von ...`
- Beschreibung
- Bereich/Kategorie, aus Quellrolle uebernommen
- Hinweis, dass Berechtigungen aus der Quellrolle kopiert und im naechsten Schritt angepasst werden
## Aktionen
- `Weiter zu Berechtigungen` -> M02 Rolle bearbeiten
- `Abbrechen`
- Modal schliessen
## Layout / Inhalt
1. Modal ueber `S02 Rollen und Berechtigungen`, mit Schliessen-Icon.
2. Headline: `Rolle duplizieren`.
3. Hinweisblock: `Basisdaten und Berechtigungen werden aus [Quellrolle] uebernommen.`
4. Formular:
- Rollenname als Pflichtfeld.
- Beschreibung als optionales Textfeld.
- Bereich/Kategorie als Select.
5. Footer:
- Primaer: `Weiter zu Berechtigungen`.
- Sekundaer: `Abbrechen`.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Rolle duplizieren | Formular mit Werten aus Quellrolle vorausgefuellt | Bauen |
| Rollenname fehlt | Inline-Fehler am Namen | Bauen |
| Rollenname existiert | Inline-Fehler am Namen | Nur dokumentieren |
| Quellrolle nicht mehr verfuegbar | kleiner Fehlerhinweis mit `Schliessen` | Nur dokumentieren |
## Permissions / Gates
- Nur Admins oder Rollen mit Rollen-/Berechtigungsverwaltung.
- Systemrolle `Admin` darf nicht dupliziert werden.
## Subframe
- Existierende Subframe-Seite fuer `M04B Rolle duplizieren`.
- Wird als eigener Modal-Step im Admin-RBAC-Flow genutzt.
- Dialog-QA: Varianten muessen `DialogLayout` -> `Dialog` -> `Dialog.Content` nutzen; keine simulierten Overlay-/Card-Modals.
| Screen | Subframe |
|---|---|
| M04B Rolle duplizieren | [Subframe](<https://app.subframe.com/f023064a5ca0/design/610d08e6-5c6a-44d3-9b29-220664393ea0/edit>) |
## Notizen
Dieser Screen ist nur fuer den Einstieg `Duplizieren`. Nach `Weiter zu Berechtigungen` nutzt der Admin `M02 Rolle bearbeiten`, um kopierte Berechtigungen atomar anzupassen.
@@ -0,0 +1,86 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: S01
screen: Mitarbeiterliste
typ: Admin List
umsetzung: Bauen
status: In Subframe
route: Settings -> Mitarbeiter, Tab Mitarbeiter
subframe: "https://app.subframe.com/f023064a5ca0/design/a9571d72-15e0-4897-968b-1f700ee4bfbc/edit"
---
# S01 - Mitarbeiterliste
## Ziel
Der Admin findet Mitarbeiter schnell, prueft Rollen/Status und startet Einladung, Rollenaenderung oder Deaktivierung.
## Pattern / Archetyp
A2 List + A6 Settings.
## Daten
- Mitarbeiter: Avatar, Name, E-Mail, Telefonnummer optional
- Abteilung
- aktuelle Rolle(n)
- Status: Aktiv, Eingeladen, Deaktiviert
- 2FA-Status
- verfuegbare Rollen fuer das Rollen-Dropdown
## Aktionen
- `Mitarbeiter einladen` -> M01
- Rolle direkt in der Tabellenzeile aendern; Verhalten ist als D01 dokumentiert, aber kein eigener Screen
- `Rollen und Berechtigungen bearbeiten` -> S02
- Zeilenaktion `Deaktivieren` -> M03
- ggf. `Einladung erneut senden`
## Layout / Inhalt
1. Header `Mitarbeiter` mit primaerem CTA `Mitarbeiter einladen`.
2. Tabs innerhalb `Settings -> Mitarbeiter`: `Mitarbeiter`, `Rollen und Berechtigungen`.
3. Toolbar mit Suche nach Name, E-Mail und Telefonnummer.
4. Filter: Rolle, Abteilung, Status, 2FA.
5. Tabelle mit Spalten: Mitarbeiter, Abteilung, Rolle, Status, 2FA, Aktionen.
6. Aktionen rechts als 3-Punkte-Menue.
## Rollen-Dropdown in der Tabelle
- Das Rollen-Dropdown ist Bestandteil von S01 und kein eigener Subframe-Screen.
- Es zeigt die aktuelle Rolle und verfuegbare Rollen.
- Unterhalb der Rollen steht `Rollen und Berechtigungen bearbeiten`.
- Dieser Eintrag fuehrt zu S02, Tab `Rollen und Berechtigungen`.
- Kritische Rollenwechsel, z. B. letzter Admin verliert Adminrechte, werden ueber V01 blockiert.
## Toasts / Action-Feedback
- Einladung gesendet: Toast.
- Rolle geaendert: kurzer Toast oder Inline-Saved-State.
- Mitarbeiter deaktiviert: Toast nach M03.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Standard | Mitarbeiterliste mit Suche, Filtern und Tabelle | Bauen |
| Keine Treffer | Suche/Filter ergibt keine Ergebnisse | Bauen |
| Eingeladener Nutzer | Status `Eingeladen`, ggf. `Einladung erneut senden` | Nur dokumentieren |
| Deaktivierter Nutzer | Status `Deaktiviert`, bleibt sichtbar | Bauen |
| Letzter Admin betroffen | kritische Aktion blockieren | V01 |
## Permissions / Gates
- Nur Admins oder Rollen mit entsprechender Mitarbeiter-/RBAC-Berechtigung.
- Normale Nutzer sehen diesen Settings-Bereich nicht.
## Subframe
- Rollen-Dropdown ist in S01 enthalten; keine separate D01-Subframe-Seite.
## Notizen
Reassign offener Aufgaben ist nicht Teil von v1. Deaktivieren bleibt ein kleiner Confirm-Flow.
@@ -0,0 +1,78 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: S02
screen: Rollen und Berechtigungen
typ: Settings Subpage
umsetzung: Bauen
status: In Subframe
route: Settings -> Mitarbeiter, Tab Rollen und Berechtigungen
subframe: "https://app.subframe.com/f023064a5ca0/design/87c24709-4f22-4181-8543-e21ff169c4d5/edit"
---
# S02 - Rollen und Berechtigungen
## Ziel
Der Admin verwaltet die Systemrolle `Admin` und selbst angelegte Rollen in einer kompakten Rollen-Tabelle.
## Pattern / Archetyp
A2 List + A6 Settings.
## Daten
- Rollenliste
- Typ: Systemrolle, Eigene Rolle
- Beschreibung
- Mitgliederanzahl / Avatar-Stack
- Status: Aktiv, Pruefen
- Permission-Bereiche als Arbeitsgeruest
## Aktionen
- `Rolle anlegen` -> M04A Rolle anlegen mit Basisdaten
- Zeilenaktion `Bearbeiten` -> M02 direkt im grossen Permission-Editor
- Zeilenaktion `Duplizieren` -> M04B Rolle duplizieren mit kopierter Rolle
- Zeilenaktion `Loeschen`
- bei Rolle in Nutzung -> D03
## Layout / Inhalt
1. Header `Rollen und Berechtigungen` mit CTA `Rolle anlegen`.
2. Toolbar mit Suche nach Rollenname und Beschreibung.
3. Filter: Typ, Permission-Bereich, In Nutzung.
4. Tabelle mit Spalten: Rolle, Beschreibung, Typ, Mitglieder, Status, Aktionen.
5. Aktionen rechts pro Zeile als 3-Punkte-Menue.
6. Nur eine sichtbare Systemrolle: `Admin`.
## Rollen / Beispiele
- Admin als einzige Systemrolle.
- Eigene Rollen koennen frei benannt werden.
- Rollen-Vorlagen fuer neue Rollen sind Work in Progress und erscheinen nicht als feste Rollen in der Liste.
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Standard | Rollen-Tabelle mit Suche/Filtern | Bauen |
| Keine Treffer | Suche/Filter ohne Ergebnis | Bauen |
| Admin-Rolle | Systemrolle ohne Loeschen-Aktion | Bauen |
| Rolle ohne Mitglieder loeschen | Loeschen moeglich mit Confirm/Pattern | Nur dokumentieren |
| Rolle in Nutzung | Loeschen blockiert | D03 |
## Permissions / Gates
- Nur Admins oder Rollen mit Rollen-/Berechtigungsverwaltung.
- Normale Nutzer sehen diesen Tab nicht.
## Subframe
-
## Notizen
Die Tabelle orientiert sich am validierten Referenzbild: klare Settings-Sidebar, Rollenliste, Mitglieder-Spalte, Status, 3-Punkte-Menue.
@@ -0,0 +1,63 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
id: V01
screen: Letzter Admin blockiert
typ: Admin Blocker
umsetzung: Nur dokumentieren
status: In Subframe
route: von S01/M03/Rollenwechsel
subframe: "https://app.subframe.com/f023064a5ca0/design/c1fd0142-76ad-402d-8eae-25ce9281d298/edit"
---
# V01 - Letzter Admin blockiert
## Ziel
Das System verhindert, dass ein Workspace ohne Admin bleibt.
## Pattern / Archetyp
Blocker-State im jeweiligen Kontext.
## Ausloeser
- letzter Admin soll deaktiviert werden
- letzter Admin soll seine Admin-Rolle verlieren
- Rollenwechsel wuerde dazu fuehren, dass kein Admin mehr existiert
## Aktionen
- `Verstanden`
- ggf. weiteren Admin bestimmen, wenn spaeter vorhanden
- abbrechen
## Inhalt / Copy-Richtung
Headline: `Letzter Admin kann nicht entfernt werden`
Text: `Dieser Workspace braucht mindestens einen Admin. Weise zuerst einem anderen Mitarbeiter die Admin-Rolle zu.`
## Zustaende
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Deaktivieren blockiert | M03 kann nicht ausgefuehrt werden | Nur dokumentieren |
| Rollenwechsel blockiert | D01 speichert nicht | Nur dokumentieren |
| Erweiterter Admin-Schutz | genauere Policy spaeter | Backlog |
## Permissions / Gates
- Greift unabhaengig davon, ob der ausloesende Nutzer grundsaetzlich Adminrechte hat.
## Subframe
- Umsetzung als echtes Subframe-Dialog-Modal: `DialogLayout` -> `Dialog` -> `Dialog.Content`.
- Kein Fake-Modal ueber einer Rollen-/Settings-Liste, kein Blur-/Overlay-Hintergrund als eigene Page.
- Subframe: [V01 Letzter Admin blockiert](<https://app.subframe.com/f023064a5ca0/design/c1fd0142-76ad-402d-8eae-25ce9281d298/edit>)
## Notizen
Der konkrete Policy-Feinschliff fuer Selbst-Deaktivierung und kritische Rollenwechsel bleibt Backlog/V2.
@@ -0,0 +1,42 @@
{
"nodes":[
{"id":"group-main","type":"group","x":-120,"y":-680,"width":4280,"height":1440,"label":"Admin RBAC Hauptflow"},
{"id":"group-notes","type":"group","x":-120,"y":900,"width":4280,"height":430,"label":"Dokumentierte Zustaende und Backlog"},
{"id":"s02","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md","x":1560,"y":440,"width":440,"height":230},
{"id":"s01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md","x":0,"y":45,"width":440,"height":230},
{"id":"m04a","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md","x":2120,"y":-110,"width":440,"height":230},
{"id":"m04b","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md","x":2980,"y":-110,"width":440,"height":230},
{"id":"d03","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md","x":3600,"y":440,"width":440,"height":230},
{"id":"m02","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md","x":2680,"y":440,"width":440,"height":230},
{"id":"v01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md","x":2120,"y":-440,"width":440,"height":230},
{"id":"m01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md","x":1000,"y":-360,"width":440,"height":230},
{"id":"m03","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md","x":1000,"y":5,"width":440,"height":230},
{"id":"note-seed","type":"text","text":"# Rollenmodell\n\nAdmin ist die einzige Start-/Systemrolle.\n\nWeitere Rollen werden vom Admin selbst angelegt.\n\nRollen-Vorlagen sind Work in Progress und werden nicht als feste Rollen in der Liste gezeigt.","x":1520,"y":1020,"width":520,"height":240},
{"id":"note-navigation","type":"text","text":"# Navigation\n\nS01 ist der Einstieg unter `Settings -> Mitarbeiter`.\n\nDer Rollen-Tab S02 ist direkt ueber die Settings-Tabs erreichbar und zusaetzlich ueber den Dropdown-Eintrag `Rollen und Berechtigungen bearbeiten`.","x":-40,"y":1020,"width":520,"height":240},
{"id":"note-d01","type":"text","text":"# D01 Rollen-Dropdown\n\nKein eigener Screen.\n\nDas Dropdown ist direkt in S01 enthalten:\n- Rolle wechseln\n- `Rollen und Berechtigungen bearbeiten` fuehrt zu S02\n- letzter Admin wird ueber V01 blockiert","x":720,"y":1015,"width":500,"height":250},
{"id":"note-backlog","type":"text","text":"# Backlog / V2\n\nReassign beim Deaktivieren, Rollen-Loeschen mit Ersatzrolle, Gruppen, Rechtekatalog, Rollen-Audit, Review-Zyklus, Rechte-Matrix, Bulk-Aktionen, erweiterter Admin-Schutz.","x":3520,"y":1020,"width":600,"height":240},
{"id":"note-permission","type":"text","text":"# Permission-Muster\n\nIm Rollen-Modal wird eine konkrete Permission-Zeile vorgebaut:\n\n`Mitarbeiter ansehen`\nBeschreibung darunter\nControl: Toggle `An/Aus`\n\nRead-only/Bearbeiten bleibt spaeteres Advanced Control, falls ein Recht nicht binaer ist.\n\nFinaler Rechtekatalog liegt bei Development.","x":2620,"y":1000,"width":560,"height":280}
],
"edges":[
{"id":"edge-s01-m01","fromNode":"s01","fromSide":"right","toNode":"m01","toSide":"left","label":"Mitarbeiter einladen"},
{"id":"edge-s01-m03","fromNode":"s01","fromSide":"right","toNode":"m03","toSide":"left","label":"deaktivieren"},
{"id":"edge-s01-d01","fromNode":"s01","fromSide":"right","toNode":"note-d01","toSide":"top","label":"Rolle wechseln inline"},
{"id":"edge-s01-s02","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","label":"Rollen bearbeiten"},
{"id":"edge-s02-m02","fromNode":"s02","fromSide":"right","toNode":"m02","toSide":"left","label":"bearbeiten"},
{"id":"edge-m03-v01","fromNode":"m03","fromSide":"right","toNode":"v01","toSide":"left","label":"letzter Admin"},
{"id":"edge-s01-v01-role","fromNode":"s01","fromSide":"right","toNode":"v01","toSide":"left","label":"Admin entfernen"},
{"id":"edge-m02-d03","fromNode":"m02","fromSide":"right","toNode":"d03","toSide":"left","label":"Rolle in Nutzung"},
{"id":"edge-m02-permission","fromNode":"m02","fromSide":"bottom","toNode":"note-permission","toSide":"top","label":"Permission UI"},
{"id":"edge-s02-seed","fromNode":"s02","fromSide":"bottom","toNode":"note-seed","toSide":"top","label":"Rollenmodell"},
{"id":"edge-d03-backlog","fromNode":"d03","fromSide":"bottom","toNode":"note-backlog","toSide":"top","label":"spaeter"},
{"id":"edge-s01-navigation","fromNode":"s01","fromSide":"bottom","toNode":"note-navigation","toSide":"top","label":"Settings-Tabs"},
{"id":"edge-s02-m04a","fromNode":"s02","fromSide":"right","toNode":"m04a","toSide":"left","label":"Rolle anlegen"},
{"id":"edge-s02-m04b","fromNode":"s02","fromSide":"right","toNode":"m04b","toSide":"left","label":"duplizieren"},
{"id":"edge-m04a-m02","fromNode":"m04a","fromSide":"right","toNode":"m02","toSide":"left","label":"weiter"},
{"id":"edge-m04b-m02","fromNode":"m04b","fromSide":"bottom","toNode":"m02","toSide":"top","label":"weiter mit Kopie"}
],
"metadata":{
"version":"1.0-1.0",
"frontmatter":{}
}
}
@@ -0,0 +1,572 @@
---
kind: wireframe-package
project: HiveGrid Screen Project
ticket: D-P2
package: WF-P2 Admin RBAC
typ: Admin Flow
status: In Subframe
subframe: "https://app.subframe.com/f023064a5ca0/flow/42c54a17-9c08-4db3-9306-1449f5b874e4/edit"
canvas: WF-P2 Admin RBAC.canvas
---
# WF-P2 Admin RBAC
Status: In Subframe
Subframe-Link: https://app.subframe.com/f023064a5ca0/flow/42c54a17-9c08-4db3-9306-1449f5b874e4/edit
Canvas: [[WF-P2 Admin RBAC.canvas]]
Stand: 2026-06-23
---
## 1. Kurzfassung
Dieses Paket plant die Admin-Flaechen aus D-P2 fuer Rollen, Berechtigungen und Mitarbeiter. Gruppen sind nach Produktentscheidung nicht Teil dieses Pakets.
Der wichtigste UX-Risikopunkt ist das sichere Bearbeiten von Rollen/Permissions. Reassign beim Deaktivieren wird fuer v1 bewusst in den Backlog gelegt.
---
## 2. Intent Check
| Frage | Antwort |
|---|---|
| Welches Ticket/Modul ist betroffen? | D-P2 Auth / RBAC / Tenant Users |
| Was soll der Nutzer am Ende schaffen? | Mitarbeiter einladen/verwalten, Rollen zuweisen und Rollen/Permissions pflegen |
| Ist es ein Flow, einzelner Screen, Zustand oder nur Dokumentation? | Admin-Paket mit Listen, Editoren und Modal-/Workflow-Zustaenden |
| Welche Planning-Quellen wurden geprueft? | D-P2, SCREEN-MAP §1 Auth-Screens, bestehende Settings-Routen `roles-and-permissions` |
| Was ist sicher im Scope? | Mitarbeiter/Rollen-Zuweisung, Rollen-Subpage mit Rechtebereichen, Einladungsmodal, einfache Deaktivieren-Bestaetigung |
| Was ist sicher nicht im Scope? | Gruppen, Plattform-Admin, Feature-Flags, Audit-Viewer |
| Gibt es Admin/Normalrolle-Unterschiede? | Ja, nur Admins duerfen diese Flaechen sehen/bearbeiten |
| Welche Annahmen sind noch unsicher? | keine fuer v1; konkrete Permission-Zuschnitte werden im Development finalisiert |
---
## 3. Scope
| Punkt | Inhalt |
|---|---|
| Ticket/Modul | D-P2 Auth |
| Nutzerrolle | Tenant-Admin |
| Admin-Variante | Vollzugriff auf Rollen, Permissions-Katalog und Mitarbeiter |
| Normale Rolle | Keine Berechtigung / kein Zugriff |
| Startpunkt | Settings -> Mitarbeiter |
| Ziel | Tenant-Team und Rechte verwalten |
| Haupt-Archetyp | A2 List + A5 Modal + A6 Settings |
| Bespoke-Anteil | nein |
| Out of scope | Gruppen, Audit, Plattform-Admin, Billing |
---
## 4. Brainstorming
### Flow-Frage
Wie schneiden wir RBAC so, dass es genug fuer Dev/Handoff ist, aber nicht zu einem riesigen Admin-Board wird?
### UX-Varianten
| Option | Beschreibung | Vorteil | Nachteil | Empfehlung |
|---|---|---|---|---|
| A | Settings-Bereich mit Tabs: Mitarbeiter, Rollen und Berechtigungen | kompakt, gut scanbar | mehrere Arbeitsmomente | genommen |
| B | Ein grosses Team-Admin-Dashboard | alles zentral | zu breit und schwer zu validieren | raus |
| C | Nur Mitarbeiter bauen, Rollen spaeter | schneller | D-P2-Luecke bleibt offen | raus |
| D | Gruppen als Teil des RBAC-Pakets | bildet D-P2 voll ab | fuer v1 zu viel und fachlich nicht benoetigt | raus |
### Entscheidung
| Entscheidung | Status | Notiz |
|---|---|---|
| Settings-Struktur statt separatem Admin-Center | genommen | bestehende Route ist `Settings -> Roles & Permissions` |
| Gruppen raus | genommen | Gruppen werden in diesem Paket nicht gebaut |
| Startrollen | genommen | Zum Start gibt es nur die Systemrolle `Admin`; weitere Rollen legt der Admin selbst an |
| Rollen-Vorlagen | WIP | Beim Erstellen koennen spaeter Vorlagen angeboten werden, sind aber noch nicht final |
| Eigene Rollen anlegen und benennen | genommen | Rollen-Editor erlaubt Custom Roles |
| Rollen-Editor als eigener Arbeitsmoment | genommen | Permission-Bundles + Advanced brauchen Raum |
| Kein separater Berechtigungen-Tab | genommen | Berechtigungen sind fuer Admins Teil des Tabs `Rollen und Berechtigungen` |
| Einladung als Modal | genommen | A5, kein eigener Fullscreen noetig |
| Deaktivieren mit Reassign | Backlog | v1 macht nur einfache Deaktivieren-Bestaetigung |
| Keine-Berechtigung-Zustand dokumentieren | genommen | normale Nutzer duerfen Admin-Flaechen nicht sehen |
### Happy Path
1. Admin oeffnet Mitarbeiterliste.
2. Admin laedt Nutzer ein und weist eine oder mehrere Rollen zu.
3. Admin nutzt `Admin` als geschuetzte Systemrolle oder erstellt eine eigene Rolle mit eigenem Namen.
4. Wenn ein Nutzer deaktiviert wird, bestaetigt der Admin eine kurze Sicherheitsfrage.
### Varianten / Branches
- Rolle anlegen: Name, Beschreibung und Permission-Bundles auswaehlen.
- Rolle bearbeiten: Permission-Bundles anpassen.
- Rolle loeschen: nur moeglich, wenn keine Mitarbeiter zugewiesen sind; sonst kleines Blocker-Modal und manuelle Umzuweisung.
- Nutzer deaktivieren: kurzes Confirm-Modal; Status wird danach `Deaktiviert`.
- Einladung laeuft ab oder wird erneut gesendet.
- Admin versucht letzten Admin zu deaktivieren.
### Roadblocks
- keine Berechtigung
- letzter Admin
- Rolle in Benutzung
- Rollenname existiert bereits
- Einladung bereits vorhanden
- Reassign-Ziel fehlt nur spaeter relevant, Backlog
### Meldungs-/Error-State-Brainstorming
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|---|---|---|---|---|
| Einladung gesendet | Toast | nein | nein | Erfolg |
| Einladung existiert | Inline/Modal-Hinweis | ja | nein | erneutes Senden anbieten |
| Rolle in Benutzung | kleines Blocker-Modal | ja | Nur dokumentieren | Loeschen erst nach manueller Umzuweisung moeglich |
| Rollenname existiert | Inline | ja | nein | Name muss eindeutig sein |
| Nutzer deaktivieren | kleines Modal | ja | ja | einfache Bestaetigung |
| Letzter Admin | Blocker | ja | pruefen | sicherheitskritisch |
| Keine Berechtigung | A7 State | ja | nein | wiederverwenden |
---
## 5. Screen-Kandidaten nach Entscheidung
| Kandidat | Warum eventuell noetig? | Erste Einschaetzung |
|---|---|---|
| Mitarbeiter & Rollen | zentrale Zuweisung von Rollen an User | Bauen |
| Einladung Modal | neuer Nutzer | Bauen/Wiederverwenden A5 |
| Rollen-Dropdown in Mitarbeiterliste | direkte Rollenzuweisung und Sprung zum Tab `Rollen und Berechtigungen` | Nur dokumentieren |
| Mitarbeiter deaktivieren | einfache Sicherheitsbestaetigung | Bauen |
| Deaktivieren mit Reassign | spaetere Uebertragung offener Verantwortlichkeiten | Backlog |
| Rollen und Berechtigungen | Systemrolle `Admin` und eigene Rollen verwalten | Bauen |
| Rolle anlegen/bearbeiten | eigene Rollen anlegen/benennen und atomar Permissions setzen | In S02 loesen |
| Rechtebereiche im Tab `Rollen und Berechtigungen` | erklaert Berechtigungen im Kontext der Rolle | In S02 loesen |
| Rolle loeschen mit Ersatzrolle | verhindert Rechteverlust | Backlog |
| Letzter Admin blockiert | Sicherheitsblocker | Validiert |
---
## 6. Rollen- und Permission-Vorschlag
### Rollenmodell
| Typ | Rolle | Zweck | Notiz |
|---|---|---|---|
| Systemrolle | Admin | Vollzugriff auf Mitarbeiter, Rollen, Workspace-Settings und kritische Admin-Funktionen | einzige sichtbare Systemrolle |
| Custom Role | frei benennbar | Admin legt eigene Rolle an | Name, Beschreibung, Bereich und Permission-Bereiche |
Notiz: Es gibt in v1 keine sichtbaren vordefinierten Rollen ausser `Admin`. Vorlagen wie Geschaeftsfuehrer, Projektleiter, Verwaltung, Vertriebler, Kundensupporter oder Monteur koennen spaeter beim Erstellen einer Rolle angeboten werden, sind aber Work in Progress und nicht Teil der initialen Rollenliste.
### Permission-Bundles fuer den Editor
Die folgenden Bundles sind nur ein Arbeitsgeruest fuer Planung und Wireframe. Sie muessen nicht vollstaendig vorgebaut werden; Development kann den finalen Rechtekatalog spaeter sauber ausmodellieren. Fuer das UI reicht in v1 ein konkretes Permission-Zeilenmuster im Rollen-Modal.
| Bundle | Enthalt grob | Relevanz fuer v1 |
|---|---|---|
| Basiszugriff | Dashboard/App betreten, eigene Daten sehen | direkt |
| Mitarbeiter | Mitglieder sehen, einladen, bearbeiten, deaktivieren | direkt |
| Rollen & Berechtigungen | Rollen ansehen, Rollen setzen, Custom Roles pflegen | direkt |
| Workspace Settings | Workspace/Account Settings sehen und bearbeiten | direkt |
| Abrechnung | Subscription, Rechnungen, Rechnungsdaten | direkt/teilweise |
| Audit & Sicherheit | Audit-Log sehen, sicherheitsrelevante Admin-Einsicht | direkt/teilweise |
| Integrationen/API | API Keys, Plugins, technische Anbindungen | direkt/teilweise |
| CRM/Kunden | Kunden/Firmen/Kontakte lesen/schreiben/admin | fachliches Modul, ggf. spaeter |
| Leads/Vertrieb | Leads, Angebote, Pipeline, Umsatzfelder | fachliches Modul, ggf. spaeter |
| Projekte/Auftraege | Projekte, Auftraege, Planung, Zuweisungen | fachliches Modul, ggf. spaeter |
| Aufgaben/Dateien | Tasks, Dokumente, Uploads, Freigaben | fachliches Modul, ggf. spaeter |
| Kommunikation/Support | Anfragen, Chat, Telefonie/Support-Kontext | fachliches Modul, ggf. spaeter |
### Rollen-Vorlagen WIP
| Vorlage | Permission-Richtung | Status |
|---|---|---|
| Geschaeftsfuehrer | fast alles, inklusive Mitarbeiter, Rollen, Workspace Settings, Abrechnung, Audit | WIP, nicht in v1-Rollenliste |
| Projektleiter | Projekte/Auftraege, Aufgaben/Dateien, Team-Ueberblick, Mitglieder nur lesen | WIP |
| Verwaltung | Mitarbeiter lesen, Workspace/Account-Basis, Abrechnung/Rechnungen, Kunden-/Projekt-Ueberblick | WIP |
| Vertriebler | CRM/Kunden, Leads/Vertrieb, Angebote, eigene Pipeline | WIP |
| Kundensupporter | Kundenkommunikation, Supportfaelle, lesender Projekt-/Kundenkontext | WIP |
| Monteur | eigene/zugewiesene Auftraege, Aufgaben, Dateien, mobile Ausfuehrung | WIP |
---
## 7. Grober Screen-Aufbau
### Settings-Aufteilung
Entscheidung: Option A ist genommen. Das Paket lebt unter `Settings -> Mitarbeiter`. Darin liegen nur die Tabs `Mitarbeiter` und `Rollen und Berechtigungen`.
| Option | Aufbau | Vorteil | Nachteil |
|---|---|---|---|
| A | `Settings -> Mitarbeiter` als Oberpunkt mit Tabs `Mitarbeiter`, `Rollen und Berechtigungen` | fuer Admins intuitiv und kompakt | technische Berechtigungen sind nur im Rollen-Kontext sichtbar |
| B | `Settings -> Rollen & Berechtigungen` als Oberpunkt mit Tabs `Mitarbeiter`, `Rollen`, `Berechtigungen` | passt zur bestehenden Code-Struktur | zu technisch und weniger kompakt |
| C | zwei Settings-Punkte: `Mitarbeiter` und `Rollen & Berechtigungen` | klare Trennung zwischen Menschen und Rechte-System | mehr Navigation, Rollen-Zuweisung springt zwischen Bereichen |
Die technische Route kann spaeter weiterhin an die bestehende App-Struktur angepasst werden; fuer Wireframes und Navigation ist der sichtbare Einstieg `Settings -> Mitarbeiter`.
### Validierungsreihenfolge
Wir validieren einzeln und legen erst danach Screen-Dateien/Canvas an.
1. `S01 Mitarbeiterliste`
2. `M01 Mitarbeiter einladen`
3. Rollen-Dropdown innerhalb `S01 Mitarbeiterliste` pruefen; D01 bleibt nur Dokumentation, kein eigener Subframe-Screen
4. `M03 Mitarbeiter deaktivieren`
5. `S02 Rollen und Berechtigungen`
6. `M04A Rolle anlegen`
7. `M04B Rolle duplizieren`
8. `M02 Rolle bearbeiten`
9. `D03 Rolle in Nutzung blockiert`
### S01 Mitarbeiterliste
Ziel: Admin findet schnell Nutzer und kann Rollen/Status pruefen.
Layout:
1. Header: `Mitarbeiter`, kurze Beschreibung, Primaer-CTA `Mitarbeiter einladen`.
2. Tab-Leiste innerhalb `Settings -> Mitarbeiter`: `Mitarbeiter`, `Rollen und Berechtigungen`.
3. Toolbar:
- Suchfeld: Name, E-Mail, Telefonnummer.
- Filter `Rolle` als Multi-Select.
- Filter `Abteilung` als Multi-Select.
- Filter `Status`: Aktiv, Eingeladen, Deaktiviert.
- Filter `2FA`: Aktiv, Nicht eingerichtet.
- Aktive Filter als Chips mit `Alle zuruecksetzen`.
4. Tabelle:
- Mitarbeiter: Avatar, Name, E-Mail.
- Abteilung.
- Rollen als Dropdown/Select.
- Status.
- 2FA.
- Aktionen: 3-Punkte-Menue rechts.
5. Empty/Filtered State:
- keine Treffer fuer Suche/Filter.
- Link/Button zum Filter zuruecksetzen.
6. Rollen-Dropdown:
- zeigt aktuelle Rolle(n).
- erlaubt direkte Rollenauswahl, sofern Admin die Berechtigung hat.
- enthaelt Eintrag `Rollen und Berechtigungen bearbeiten`.
- `Rollen und Berechtigungen bearbeiten` navigiert in den Tab `Rollen und Berechtigungen` unter `Settings -> Mitarbeiter`.
7. Zeilenaktionen:
- rechts in jeder Tabellenzeile ein 3-Punkte-Menue.
- enthaelt kontextabhaengig `Einladung erneut senden`, `Deaktivieren`, ggf. `Profil oeffnen`.
### M03 Mitarbeiter deaktivieren
Ziel: Admin bestaetigt eine einfache Deaktivierung eines Mitarbeiters.
Layout:
1. Kleines Confirm-Modal aus der Mitarbeiterliste.
2. Headline: `Mitarbeiter deaktivieren?`
3. Inhalt:
- Name und E-Mail des Mitarbeiters.
- kurzer Hinweis, dass der Mitarbeiter danach keinen Zugriff mehr auf den Workspace hat.
- Hinweis, dass der Mitarbeiter in der Liste mit Status `Deaktiviert` sichtbar bleibt.
4. Aktionen:
- Primaer/Danger: `Deaktivieren`
- Sekundaer: `Abbrechen`
5. Nach Erfolg:
- Modal schliesst.
- Toast `Mitarbeiter wurde deaktiviert`.
- Tabellenstatus wechselt auf `Deaktiviert`.
6. Nicht in v1:
- Reassign offener Verantwortlichkeiten.
- mehrstufiger Workflow.
### S02 Rollen und Berechtigungen
Ziel: Admin verwaltet Rollen als eigene Subpage innerhalb `Settings -> Mitarbeiter`, nicht als Modal aus der Mitarbeiterliste. Berechtigungen werden nur hier im Kontext der Rolle sichtbar.
Layout:
1. Header: `Rollen und Berechtigungen`, CTA `Rolle anlegen`.
2. Toolbar:
- Suchfeld: Rollenname, Beschreibung.
- Filter `Typ`: Systemrolle, Eigene Rolle.
- Filter `Permission-Bereich`: z. B. Mitarbeiter, Abrechnung, Dateien, Aufgaben.
- Filter `In Nutzung`: mit Mitgliedern / ohne Mitglieder.
3. Tabelle:
- Rolle.
- Beschreibung.
- Typ: Systemrolle, Eigene Rolle.
- Mitglieder: Avatar-Stack oder Anzahl.
- Status: Aktiv, Pruefen.
- Aktionen: 3-Punkte-Menue rechts.
4. Zeilenaktionen:
- rechts in jeder Tabellenzeile ein 3-Punkte-Menue.
- enthaelt `Bearbeiten`, `Duplizieren`, `Loeschen`.
- bei Systemrolle `Admin` keine Loeschen-Aktion.
5. Rollen-Bearbeitung:
- passiert in diesem Tab/Subpage-Kontext.
- `Rolle anlegen` oeffnet M04A mit Basisdaten.
- `Bearbeiten` oeffnet M02 direkt im grossen Permission-Editor.
- `Duplizieren` oeffnet M04B mit vorausgefuellten Basisdaten.
- das Modal ist nicht aus der Mitarbeiterliste heraus erreichbar, sondern nur aus `Rollen und Berechtigungen`.
6. Rechtebereiche:
- werden beim Bearbeiten einer Rolle angezeigt.
- keine separate Hauptnavigation.
- optional mit Advanced-Einzelrechten als ausklappbare Details.
7. Loeschzustand:
- wenn keine Mitglieder zugewiesen sind, kann eine Rolle geloescht werden.
- wenn die Rolle noch genutzt wird, erscheint ein kleines Blocker-Modal.
- Copy-Richtung: `Diese Rolle kann nicht geloescht werden, solange Mitarbeiter zugewiesen sind.`
- Aktion: `Verstanden`; Admin weist Mitglieder danach manuell einer anderen Rolle zu.
- Ersatzrolle/Bulk-Reassign bleibt Backlog.
### M04A Rolle anlegen
Ziel: Admin klaert bei einer komplett neuen eigenen Rolle zuerst Name, Beschreibung und Bereich, bevor die atomaren Berechtigungen gesetzt werden.
Einstieg:
1. `Rolle anlegen` aus S02 oeffnet M04A mit leerem Formular.
2. `Bearbeiten` nutzt M04A nicht und springt direkt in M02.
3. `Duplizieren` nutzt M04A nicht, sondern M04B.
Layout:
1. Modal-Step ueber `S02 Rollen und Berechtigungen`, mit Schliessen-Icon.
2. Headline: `Rolle anlegen`.
3. Formular:
- Rollenname als Pflichtfeld.
- Beschreibung als optionales Textfeld.
- Bereich/Kategorie als Select, z. B. Team, Verwaltung, Operativ.
4. Optionaler Bereich `Vorlage verwenden`:
- nur als Work-in-Progress-Platzhalter.
- Vorlagen sind keine Seed-Rollen und erscheinen nicht in der Rollenliste.
5. Footer:
- `Weiter zu Berechtigungen` fuehrt zu M02.
- `Abbrechen` schliesst den Modal-Step.
Subframe:
- M04A ist der bestehende Subframe-Screen fuer `Rolle anlegen`.
- Der Screen bleibt als Dialog/Modal-Step ueber S02 gedacht.
### M04B Rolle duplizieren
Ziel: Admin nutzt eine bestehende eigene Rolle als Startpunkt, passt die Basisdaten an und landet danach im grossen Permission-Editor mit kopierten Berechtigungen.
Einstieg:
1. `Duplizieren` aus dem Zeilenmenue in S02 oeffnet M04B mit vorausgefuellten Basisdaten.
2. `Rolle anlegen` nutzt M04B nicht, sondern M04A.
3. `Bearbeiten` nutzt M04B nicht und springt direkt in M02.
Layout:
1. Modal-Step ueber `S02 Rollen und Berechtigungen`, mit Schliessen-Icon.
2. Headline: `Rolle duplizieren`.
3. Hinweisblock: Basisdaten und Berechtigungen werden aus der Quellrolle kopiert.
4. Formular:
- Rollenname als Pflichtfeld, vorausgefuellt z. B. als `Kopie von ...`.
- Beschreibung als optionales Textfeld.
- Bereich/Kategorie als Select.
5. Footer:
- `Weiter zu Berechtigungen` fuehrt zu M02.
- `Abbrechen` schliesst den Modal-Step.
Subframe:
- M04B ist der bestehende Subframe-Screen fuer `Rolle duplizieren`.
- Der Screen bleibt als Dialog/Modal-Step ueber S02 gedacht.
### M02 Rolle bearbeiten
Ziel: Admin bearbeitet die Basisdaten und Berechtigungen einer vorhandenen oder gerade angelegten eigenen Rolle, ohne die Rollen-Subpage zu verlassen. Die Systemrolle `Admin` ist geschuetzt.
Einstiege:
1. `Bearbeiten` auf einer bestehenden Rolle oeffnet direkt den grossen Permission-Editor.
- Der Admin landet sofort im Editor, oben im Bereich `Rolle`.
- Rollenname, Beschreibung und Bereich/Kategorie bleiben dort weiterhin editierbar.
2. `Rolle anlegen` kommt aus M04A und uebergibt die Basisdaten in den Editor.
3. `Duplizieren` kommt aus M04B, mit vorausgefuellten Basisdaten und kopierten Berechtigungen.
Layout:
1. Sehr grosser Modal-Flow ueber dem Tab `Rollen und Berechtigungen`.
2. Modal kann jederzeit geschlossen werden.
3. Im Editor steht oben der Bereich `Rolle`:
- Rollenname.
- Beschreibung.
- Bereich/Kategorie der Rolle, z. B. Team, Verwaltung, Operativ.
- Typ als Information: `Systemrolle` oder `Eigene Rolle`; nicht frei umstellbar.
- diese Daten koennen auch nach M04A/M04B weiterhin bearbeitet werden.
4. Linke Sidebar:
- oben links sitzt die globale Suche, aehnlich Apple-Einstellungen.
- darunter stehen die Bereiche als Navigation.
- Beispiele: Rolle, Allgemein, Mitarbeiter, Rollen und Berechtigungen, Workspace Settings, Abrechnung, Audit & Sicherheit, Integrationen/API, Dateien, Aufgaben.
- Klick springt zum jeweiligen Bereich im scrollbaren Modal.
5. Globale Berechtigungs-Suche:
- Suchfeld links ueber der Sidebar.
- durchsucht alle Berechtigungen/Rechtebereiche ueber alle Module hinweg.
- filtert die sichtbaren Treffer bereichsuebergreifend.
- Treffer bleiben ihren Bereichsueberschriften zugeordnet, damit Kontext erhalten bleibt.
6. Hauptbereich:
- startet oben mit `Rolle`.
- darunter folgen `Allgemein` und die weiteren Rechtebereiche.
- die Bereichsueberschriften entsprechen den Eintraegen in der linken Sidebar.
- Admin kann durch alle Bereiche nach unten scrollen.
7. Permission-Abschnitte:
- jeder Bereich hat einzelne Zeilen mit Toggle-Switches, um Berechtigungen an- oder auszuschalten.
- Bereich kann eine Kurzbeschreibung enthalten.
- einzelne technische Rechte koennen als Advanced Details aufgeklappt werden, falls noetig.
8. Permission-Zeilenmuster:
- eine Beispiel-Permission wird im Wireframe konkret vorgebaut.
- Aufbau als Tabelle/Liste wie in der Referenz: links Setting/Permission, mittig Beschreibung, rechts Enable/Disable.
- Beispiel-Ueberschrift: `Mitarbeiter ansehen`.
- Beispiel-Beschreibung: `Darf Mitarbeiterliste und Mitarbeiterprofile im Workspace lesen.`
- Control: Toggle-Switch `An/Aus`.
- Wenn ein Recht Abstufungen braucht, kann spaeter `Read-only/Bearbeiten` als Detail/Advanced Control ergaenzt werden.
- weitere Permissions koennen Development-seitig nach diesem Muster ergaenzt werden.
9. Footer:
- Speichern.
- Abbrechen.
- ggf. Rolle loeschen als Danger Action.
## 8. Screen Validation Gate
| ID | Screen/Zustand | Ist eigener Arbeitsmoment? | Neue Struktur/Entscheidung/Risiko? | Entscheidung | Begruendung |
|---|---|---|---|---|---|
| S01 | Mitarbeiterliste | ja | ja | Validiert | Suche, Filter, Tabelle und Aktionen passen erstmal |
| M01 | Mitarbeiter einladen | ja | ja | Validiert | Modal mit E-Mail, optional Name/Abteilung und Rollen |
| D01 | Rollen-Dropdown in Mitarbeiterliste | nein | ja | Validiert | direkte Rollenauswahl; Bearbeiten fuehrt in `Rollen und Berechtigungen` |
| M03 | Mitarbeiter deaktivieren | ja | ja | Validiert | kleines Confirm-Modal, kein Reassign |
| S02 | Rollen und Berechtigungen | ja | ja | Validiert | Rollen-Tabelle nach Referenz, 3-Punkte-Menue, nur Systemrolle Admin |
| M04A | Rolle anlegen | ja | ja | Validiert | eigener Basisdaten-Step fuer neue Rollen vor dem Permission-Editor |
| M04B | Rolle duplizieren | ja | ja | Validiert | eigener Basisdaten-Step fuer duplizierte Rollen mit Quellrollen-Kontext |
| M02 | Rolle bearbeiten | ja | ja, Permissions | Validiert | grosses Modal mit Sidebar, Ueberblick, globaler Suche und Rechte-Toggles |
| D03 | Rolle in Nutzung blockiert | nein | ja | Validiert | Loeschen nur ohne Mitglieder; sonst kleines Blocker-Modal, Ersatzrolle/Bulk-Reassign im Backlog |
| V01 | Letzter Admin blockiert | ja | ja, Sicherheitsblocker | Validiert | kleiner Blocker-State im jeweiligen Kontext |
### Copy-kritische Zustaende
| Zustand | Bauen? | Warum / Copy-Entscheidung |
|---|---|---|
| Mitarbeiter deaktivieren | ja | kurzer Sicherheitsmoment |
| Letzter Admin blockiert | ja | kleiner Blocker-State im jeweiligen Kontext |
| Rolle in Benutzung | Nur dokumentieren | kleines Blocker-Modal; Ersatzrolle/Bulk-Reassign liegt im Backlog |
| Custom Role anlegen | ja | muss klar zwischen Vorlage und eigener Rolle unterscheiden |
### Blockierende Error States
| Zustand | UI-Form | Primaeraktion | Sekundare Aktion | Inhalt/Copy-Richtung |
|---|---|---|---|---|
| Letzter Admin | Screen/Modal | weiteren Admin bestimmen | abbrechen | kein Tenant ohne Admin |
| Reassign-Ziel fehlt | Backlog | - | - | spaeter fuer Reassign-Workflow |
| Rolle in Benutzung | kleines Blocker-Modal | Verstanden | - | Rolle kann erst geloescht werden, wenn keine Mitarbeiter mehr zugewiesen sind |
| Rollenname existiert | Inline | Namen aendern | abbrechen | eindeutige Rollennamen |
---
## 9. Validierte Screen-Liste
Alle aktiven Screen-Kandidaten sind von David validiert. Das Rollenmodell startet nur mit `Admin` plus eigenen Rollen; Vorlagen und finaler Rechtekatalog werden spaeter ausgearbeitet.
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|---|---|---|---|---|---|
| S01 | Mitarbeiterliste | Admin List | Bauen | `Settings -> Mitarbeiter`, Tab `Mitarbeiter` | Validiert |
| M01 | Mitarbeiter einladen | Modal | Bauen | von S01 | Validiert |
| D01 | Rollen-Dropdown in Mitarbeiterliste | Inline-Zustand in S01 | Nur dokumentieren | in S01, kein eigener Subframe-Screen | Validiert |
| M03 | Mitarbeiter deaktivieren | Confirm Modal | Bauen | von S01 | Validiert |
| S02 | Rollen und Berechtigungen | Settings Subpage | Bauen | `Settings -> Mitarbeiter`, Tab `Rollen und Berechtigungen` | Validiert |
| M04A | Rolle anlegen | Modal Step | Bauen | von S02 CTA Rolle anlegen | Subframe: Rolle anlegen |
| M04B | Rolle duplizieren | Modal Step | Bauen | von S02 Zeilenaktion Duplizieren | Subframe: Rolle duplizieren |
| M02 | Rolle bearbeiten | Grosses Modal | Bauen | von S02 Bearbeiten oder M04A/M04B | Finale Subframe-Seite: M02 Rolle bearbeiten |
| D03 | Rolle in Nutzung blockiert | Admin Blocker | Nur dokumentieren | von S02/M02 | Validiert |
| V01 | Letzter Admin blockiert | Admin Blocker | Nur dokumentieren | von S01/M03/Rollenwechsel | Validiert |
---
## 10. Subframe-Grid
```text
S01 Mitarbeiterliste -> M01 Mitarbeiter einladen
S01 Mitarbeiterliste -> M03 Mitarbeiter deaktivieren
S01 Mitarbeiterliste -> V01 Letzter Admin blockiert
S01 Mitarbeiterliste -> Rolle wechseln inline
S01 Mitarbeiterliste -> S02 Rollen und Berechtigungen via Dropdown-Eintrag `Rollen und Berechtigungen bearbeiten`
S02 Rollen und Berechtigungen -> M04A Rolle anlegen via Rolle anlegen
S02 Rollen und Berechtigungen -> M04B Rolle duplizieren via Duplizieren
M04A Rolle anlegen -> M02 Rolle bearbeiten
M04B Rolle duplizieren -> M02 Rolle bearbeiten
S02 Rollen und Berechtigungen -> M02 Rolle bearbeiten via Bearbeiten
S02 Rollen und Berechtigungen -> D03 Rolle in Nutzung blockiert
```
### Subframe-Stand M02/M04A/M04B
`M02 Rolle bearbeiten` ist die finale Subframe-Seite fuer die Umsetzung. Die alten M02-Referenzvarianten wurden aus Subframe geloescht, damit der Admin-RBAC-Flow clean bleibt. Fuer den M04-Split werden die bestehenden Subframe-Seiten getrennt referenziert: M04A fuer `Rolle anlegen`, M04B fuer `Rolle duplizieren`. Aktueller Subframe-Stand im Admin-RBAC-Flow:
| Screen | Subframe |
|---|---|
| M02 Rolle bearbeiten | [Subframe](<https://app.subframe.com/f023064a5ca0/design/9a9873e3-d790-4373-b8c2-fadd3b82cbe6/edit>) |
| M04A Rolle anlegen | [Subframe](<https://app.subframe.com/f023064a5ca0/design/479ee52d-8d73-46e9-9a9b-a8798a22d764/edit>) |
| M04B Rolle duplizieren | [Subframe](<https://app.subframe.com/f023064a5ca0/design/610d08e6-5c6a-44d3-9b29-220664393ea0/edit>) |
---
## 11. Screen-Pakete
| ID | Datei |
|---|---|
| S01 | [[Screens/S01 Mitarbeiterliste]] |
| M01 | [[Screens/M01 Mitarbeiter einladen]] |
| D01 | [[Screens/D01 Rollen-Dropdown in Mitarbeiterliste]] |
| M03 | [[Screens/M03 Mitarbeiter deaktivieren]] |
| S02 | [[Screens/S02 Rollen und Berechtigungen]] |
| M04A | [[Screens/M04A Rolle anlegen]] |
| M04B | [[Screens/M04B Rolle duplizieren]] |
| M02 | [[Screens/M02 Rolle bearbeiten]] |
| D03 | [[Screens/D03 Rolle in Nutzung blockiert]] |
| V01 | [[Screens/V01 Letzter Admin blockiert]] |
---
## 12. Backlog / V2
Diese Punkte sind bewusst nicht Teil der v1-Screen-Liste, sollen aber fuer spaetere Versionen sichtbar bleiben.
| Thema | Beschreibung | Warum spaeter |
|---|---|---|
| Deaktivieren mit Reassign | Beim Deaktivieren offene Projekte, Aufgaben, Leads, Kunden, Dateien oder Verantwortlichkeiten auf andere Nutzer uebertragen | v1 bleibt bewusst bei kleinem Confirm-Modal |
| Rollen-Loeschen mit Ersatzrolle | Wenn eine Rolle noch Nutzer hat, Ersatzrolle waehlen und Nutzer gesammelt umziehen | v1 blockiert nur und verlangt manuelle Umzuweisung |
| Gruppen | Gruppen/Teams/Abteilungen als eigene Verwaltung, ggf. mit Bulk-Zuweisung | fuer v1 aus RBAC rausgenommen |
| Rechtekatalog als eigener Tab | Alle technischen Berechtigungen unabhaengig von Rollen durchsuchen/erklaeren | v1 zeigt Rechte nur im Rollen-Editor |
| Rollen-Audit | Historie, wer Rollen/Rechte geaendert hat | Audit-Viewer nicht Teil dieses Pakets |
| Rollen-Review / Needs Review | Rollen markieren, die geprueft werden muessen, inkl. Review-Zyklus | Status `Pruefen` ist UI-vorbereitet, Prozess spaeter |
| Rollen-Vorlagen ausarbeiten | branchenspezifische Rollen-Vorlagen fuer neue Rollen definieren | Vorlagen sind aktuell Work in Progress und nicht Teil der initialen Rollenliste |
| Rechte-Matrix | Vergleich mehrerer Rollen nebeneinander | fuer v1 zu breit/technisch |
| Bulk-Aktionen | mehrere Mitarbeiter gleichzeitig einladen, deaktivieren oder Rollen zuweisen | spaeter, wenn Teamlisten groesser werden |
| Admin-Schutz erweitert | detaillierte Regeln fuer Selbst-Deaktivierung, letzter Admin, kritische Rollenwechsel | v1 dokumentiert Blocker, genaue Policy spaeter mit Dev/Security |
---
## 13. Handoff-Check
- [x] Paket ist angelegt.
- [x] D-P2 Admin-Screens sind geprueft.
- [x] Gruppen sind fuer dieses Paket rausgenommen.
- [x] `Admin` als einzige Startrolle plus eigene Rollen sind als Richtung notiert.
- [x] Rollen-Vorlagen sind als Work in Progress dokumentiert.
- [x] Permission-Bundles sind als Arbeitsgeruest markiert, nicht als finaler Rechtekatalog.
- [x] Permission-Zeilenmuster fuer das Rollen-Modal ist dokumentiert.
- [x] Grober Screen-Aufbau mit Suche/Filtern ist dokumentiert.
- [x] S01 Mitarbeiterliste ist validiert.
- [x] M01 Mitarbeiter einladen ist validiert.
- [x] Rollen-Dropdown in S01 und Sprung zu `Rollen und Berechtigungen` sind dokumentiert.
- [x] S02 Rollen und Berechtigungen ist validiert.
- [x] M04A Rolle anlegen ist als eigener Screen vermerkt.
- [x] M04B Rolle duplizieren ist als eigener Screen vermerkt.
- [x] M02 Rolle bearbeiten ist validiert.
- [x] M03 Mitarbeiter deaktivieren ist validiert.
- [x] D03 Rolle in Nutzung blockiert ist validiert.
- [x] V01 Letzter Admin blockiert ist validiert.
- [x] Reassign ist in den Backlog gelegt.
- [x] Backlog/V2-Liste ist dokumentiert.
- [x] Permission-Bundles sind fuer v1 als UI-Arbeitsgeruest ausreichend benannt.
- [x] David hat die Kandidaten validiert.
- [x] Screen-Dateien sind angelegt und nach Screen-Zuschnitt synchronisiert.
- [x] Canvas ist angelegt und nach M04-Split synchronisiert.
- [x] M01/M02/M03/M04A/M04B/D03/V01 sind auf echte Subframe-Dialog-Struktur geprueft: `DialogLayout` -> `Dialog` -> `Dialog.Content`.
- [x] Subframe-Links sind eingetragen.
- [x] M04A ist visuell an den final angepassten M04B-Duplikat-Screen angeglichen, aber ohne Duplikat-Modus.