Anlegen/Bearbeiten von Nutzern erfolgt jetzt wie bei Assets über URL-gesteuerte
Popups (?new/?edit, modal.tsx) statt Inline in der Tabelle.
- Neue generische Komponenten: user-table.tsx (reine Anzeige-Tabelle, Zeilen
verlinken auf ?edit, Button auf ?new) und user-forms.tsx (UserCreateForm /
UserEditForm; Name/E-Mail + Rollen + Status + Passwort-Reset; Einmal-Passwort
im Popup). Actions werden als gebundene Props übergeben — dieselben Formulare
für Plattform- und Mandanten-Verwaltung.
- /settings/users und /admin/[id] rendern die Tabelle + Modals; die alten
Inline-Komponenten (platform-tenant-users, tenant-users-manager) entfernt.
- Einstellungen: „Benutzer & Rollen"-Kachel ist als Ganzes klickbar (Link).
Browser-verifiziert: Anlegen im Popup (Einmal-Passwort + Fertig), Zeilenklick
öffnet Bearbeiten-Popup vorbefüllt; Admin-Portal analog. tsc + lint + build +
Guard-Check grün.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nachschärfung der Benutzer-/Rollenverwaltung auf Basis des Feedbacks.
- Nutzer editierbar: Name & E-Mail (eindeutig je Mandant) je Nutzer in beiden
Konsolen — updateTenantUser (Plattform) / updateUser (Tenant), inline-Formular
in platform-tenant-users.tsx und tenant-users-manager.tsx. Rollen/Status/Reset
bestanden bereits (browser-verifiziert: Name/E-Mail, Rollen, Deaktivieren, Reset).
- Kern-Einstellungen ausschließlich Superadmin: TISAX-/Schutzbedarf-Tiefe wandert
in die Admin-Konsole (setTenantTisaxLevel, AL2/AL3 in /admin/[id]); aus den
Tenant-Einstellungen entfernt (nur noch Read-only-Anzeige). updateTenantSettings
fasst tisaxLevel/Schutzbedarf-Flags nicht mehr an. Module waren bereits Superadmin.
- Tenant-Einstellungen: „Benutzer & Rollen"-Bereich verlinkt und sichtbar
(user:manage/role:manage) — Verwaltung unter /settings/users.
Browser-verifiziert: Admin-Konsole editiert Name/E-Mail/Rollen/Status/Passwort und
schaltet TISAX AL3; /settings zeigt Benutzer-Bereich + TISAX read-only;
/settings/users listet Nutzer mit Editierfeldern. tsc + lint + build + Guard grün.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Eigener Bereich /settings/users (verlinkt aus /settings), sichtbar nur mit
user:manage bzw. role:manage. Strikt mandantenintern (dbForTenant über die eigene
Session) — kein Cross-Tenant-Zugriff. Audit-Scope: tenant.
- actions/tenant-users.ts:
- Benutzer (user:manage): createUser (Initial-/Einmal-Passwort, mustChangePassword),
resetUserPassword, setUserStatus (deaktivieren/reaktivieren), setUserRoles.
- Rollen (role:manage): createRole (+ Permissions), updateRolePermissions
(Standardrollen schreibgeschützt), cloneRole (Standard klonbar), deleteRole
(nur eigene, nur ohne zugewiesene Nutzer — sonst Umzug-Hinweis).
- Lockout-Schutz: letzter aktiver Mandanten-Admin kann nicht deaktiviert werden
und ihm kann die Admin-Rolle nicht entzogen werden.
- Komponenten tenant-users-manager.tsx (Benutzer) und role-manager.tsx (Rollen +
gruppierter Permission-Katalog); Bestands-UI/Dark-Theme wiederverwendet.
Browser-verifiziert: Mandanten-Admin sieht Benutzer + Rollen des eigenen Mandanten,
legt eine eigene Rolle „Externer Prüfer" mit ausgewählten Rechten an (asset:read,
audit:read, policy:read → korrekt gespeichert); Standardrollen als schreibgeschützt
markiert. tsc + lint + build + Guard-Check grün.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>