diff --git a/features/PROJ-3-mitgliederverwaltung.md b/features/PROJ-3-mitgliederverwaltung.md index 8f20b57..40e4a06 100644 --- a/features/PROJ-3-mitgliederverwaltung.md +++ b/features/PROJ-3-mitgliederverwaltung.md @@ -4,7 +4,7 @@ **Created:** 2026-09-11 (retro-dokumentiert, gebaut in 5e6ee2c + b38a5a4) ## Summary -Mitglieder eines Vereins verwalten: Liste, Status-Aktionen (aktivieren/deaktivieren), Anbindung an Matrix-Membership-Sync (deaktivierte Mitglieder werden aus Matrix-Räumen entfernt). +Mitglieder eines Vereins verwalten: Liste, Status-Aktionen (aktivieren/sperren/Austritt vermerken), Anbindung an Matrix-Membership-Sync (gesperrte/ausgetretene Mitglieder werden in Synapse deaktiviert), sowie hartes Löschen. ## Built - `backend/src/routes/members.ts` @@ -14,8 +14,9 @@ Mitglieder eines Vereins verwalten: Liste, Status-Aktionen (aktivieren/deaktivie ## Acceptance Criteria - [x] Mitgliederliste pro Verein abrufbar (paginiert) -- [x] Status ändern (aktiv/inaktiv) durch berechtigte Rollen -- [x] Deaktivierung löst Sync-Schritt Richtung Matrix aus +- [x] Status ändern (aktiv/gesperrt/ausgetreten) durch berechtigte Rollen (`memberStatusEnum`: `active`/`suspended`/`left`) +- [x] Austritt kann eigenständig vermerkt werden ("Austritt vermerken" im Dropdown, Status → `left`), getrennt von Sperren +- [x] Sperren oder Austritt lösen Sync-Schritt Richtung Matrix aus (`deactivateUser`, ohne Erase — Account bleibt inaktiv wiederherstellbar) - [x] Mitglied kann durch Org-Admin endgültig gelöscht werden (mit Bestätigungsdialog im Frontend) - [x] Löschen entfernt/erased den zugehörigen Matrix-Account und alle abhängigen Datensätze (Team-Zuordnungen, Rollen, Eltern-Verknüpfungen) - [x] Audit-Log-Eintrag bleibt nach dem Löschen erhalten