docs(PROJ-13): clarify OBS-16-7 is not a bug

Platform SYSTEM_ADMIN is deliberately independent of org membership
status (PROJ-13 non-goal: revoke is DB-only, no suspend concept on
users). requireSystemAdmin already reads the flag fresh per request,
so revocation is immediate. QA's finding conflated org-level
suspension with platform-admin revocation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-18 01:12:11 +02:00
1 parent 60f7671c2e
commit 50413c87d8
1 file changed
+1 -1
+1 -1
View File
@@ -38,7 +38,7 @@ Empfohlene Baureihenfolge PROJ-13 bis PROJ-18: PROJ-13 → PROJ-14 → PROJ-15
Nachträge 2026-09-11 (commit bc4d749): Passwort-Reset → [[PROJ-1]], Mitglied hart löschen → [[PROJ-3]].
Nachtrag 2026-09-11 (commit ffe2d45): API-Zugriff bei suspended/left sofort entziehen (nicht nur Matrix) → [[PROJ-3]].
Nachtrag 2026-09-12: Admin-Direkt-Passwort-Setzen → [[PROJ-3]].
Nachtrag 2026-09-17 (QA PROJ-16, OBS-16-7): `requireSystemAdmin` prüft nur `users.isSystemAdmin`, ignoriert suspended/left — suspendierter SYSTEM_ADMIN behält vollen `/api/system-admin/**`-Zugriff → [[PROJ-13]].
Nachtrag 2026-09-18 (Klarstellung zu OBS-16-7): kein Bug. `isSystemAdmin` ist laut PROJ-13-Design bewusst unabhängig von Org-Mitgliedschaft, Widerruf ist explizit DB-only (Non-Goal: kein UI). `users` hat kein Suspend-Status-Feld — nur `members.status` (Org-Ebene). `requireSystemAdmin` liest das Flag frisch pro Request, kein Caching → Revoke wirkt sofort. OBS-16-7 verwechselte Org-Suspendierung mit Platform-Admin-Widerruf → [[PROJ-13]].
Noch nicht gespect't, auf Nutzerwunsch für später vorgemerkt: eigenständiger E-Mail+Passwort-Login der Mitglieder direkt bei Synapse/Element (aktuell nur über TalkTime via Puppet-Login möglich, siehe [[PROJ-11]]).