Files
talktime/features/PROJ-3-mitgliederverwaltung.md
T

1.7 KiB

PROJ-3: Mitgliederverwaltung

Status: Deployed 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).

Built

  • backend/src/routes/members.ts
  • frontend/src/pages/MembersPage.tsx
  • Mitglied-Status-Aktionen + Deaktivierungs-Sync (commit b38a5a4)
  • Nachtrag 2026-09-11 (commit bc4d749): DELETE /api/members/:memberId — Admin-only, hartes Löschen. Audit-Log-Eintrag wird vor dem Delete geschrieben (audit_logs.targetId ist unconstrained text, überlebt das Löschen). Matrix-Account wird per deactivateUser(matrixUserId, erase=true) gelöscht. Abhängige Daten (parent_links, team_members, org_roles) laufen über bestehende onDelete: cascade-FKs mit. Frontend: Bestätigungsdialog (AlertDialog) im Dropdown-Menü der Mitgliederliste.

Acceptance Criteria

  • Mitgliederliste pro Verein abrufbar (paginiert)
  • Status ändern (aktiv/inaktiv) durch berechtigte Rollen
  • Deaktivierung löst Sync-Schritt Richtung Matrix aus
  • Mitglied kann durch Org-Admin endgültig gelöscht werden (mit Bestätigungsdialog im Frontend)
  • Löschen entfernt/erased den zugehörigen Matrix-Account und alle abhängigen Datensätze (Team-Zuordnungen, Rollen, Eltern-Verknüpfungen)
  • Audit-Log-Eintrag bleibt nach dem Löschen erhalten

Open Items

  • Vollständige Membership-Sync mit Outbox/Retry/Reconciliation laut PRD noch nicht fertig — aktuell nur direkter Sync-Aufruf, kein Retry-Mechanismus geprüft

Notes

Retro-Spec. Löschen-Feature am 2026-09-11 nachgebaut und getestet auf talkhub-LXC (192.168.66.8).