users.isSystemAdmin (boolean, default false), DB-only to grant (no UI in MVP scope, per spec). requesterIsSystemAdmin()/requireSystemAdmin() in authz.ts — checked fresh from the DB on every request, not cached in the JWT, so revoking takes effect immediately. GET /api/auth/me returns the flag; DashboardPage shows a "System-Admin" nav button when set (convenience only, not the access control — PROJ-14/15/16/18's own routes enforce it). /system-admin route doesn't exist yet (comes with PROJ-14) — the nav button currently bounces back to / via the catch-all route, no stub page added. Verified end-to-end on talkhub: /api/auth/me flips true immediately after a direct DB update, no re-login required. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0143yYvjesjHndBACoweyK67
3.8 KiB
Feature Index
Central tracking for all features. Updated by skills automatically — never hand-edit the status column without also updating the matching feature spec header.
Status Legend
- Planned - Requirements written, ready for architecture
- In Progress - Tech design done, frontend/backend being built
- In Review - QA testing in progress
- Deployed - Live in production
Features
| ID | Feature | Status | Spec | Created |
|---|---|---|---|---|
| PROJ-1 | Auth (Login/Logout/Session) | Deployed | PROJ-1-auth.md | 2026-09-11 |
| PROJ-2 | Verein anlegen + Vereinsadministrator | Deployed | PROJ-2-verein-und-vereinsadministrator.md | 2026-09-11 |
| PROJ-3 | Mitgliederverwaltung | Deployed | PROJ-3-mitgliederverwaltung.md | 2026-09-11 |
| PROJ-4 | Abteilungsverwaltung | Deployed | PROJ-4-abteilungsverwaltung.md | 2026-09-11 |
| PROJ-5 | Mannschaftsverwaltung (inkl. Saison) | Deployed | PROJ-5-mannschaftsverwaltung.md | 2026-09-11 |
| PROJ-6 | Rollen & Berechtigungen (RBAC) | Deployed | PROJ-6-rollen-und-berechtigungen.md | 2026-09-11 |
| PROJ-7 | Einladungssystem | Deployed | PROJ-7-einladungssystem.md | 2026-09-11 |
| PROJ-8 | Audit Log | Deployed | PROJ-8-audit-log.md | 2026-09-11 |
| PROJ-9 | Synapse-Integration (Health Check, User Provisioning, Raum-Sync) | Deployed | PROJ-9-synapse-integration-health-check.md | 2026-09-11 |
| PROJ-10 | Deployment (Docker Compose + Synapse Installer) | Deployed | PROJ-10-deployment.md | 2026-09-11 |
| PROJ-11 | Chat (Matrix Client-Server API) | Deployed | PROJ-11-chat.md | 2026-09-11 |
| PROJ-12 | Automatische Löschfrist für ausgetretene Mitglieder (DSGVO) | Planned | PROJ-12-mitglieder-loeschfrist.md | 2026-09-11 |
| PROJ-13 | SYSTEM_ADMIN-Rolle | In Review | PROJ-13-system-admin-rolle.md | 2026-09-12 |
| PROJ-14 | Synapse Raum-Übersicht (System-Admin) | Planned | PROJ-14-synapse-raum-uebersicht.md | 2026-09-12 |
| PROJ-15 | Media-Cleanup (System-Admin) | Planned | PROJ-15-media-cleanup.md | 2026-09-12 |
| PROJ-16 | Federation-Status (System-Admin) | Planned | PROJ-16-federation-status.md | 2026-09-12 |
| PROJ-17 | Nachricht melden (Chat) | Planned | PROJ-17-nachricht-melden.md | 2026-09-12 |
| PROJ-18 | Reports/Moderation (System-Admin) | Planned | PROJ-18-reports-moderation.md | 2026-09-12 |
Noch nicht gestartet (siehe docs/PRD.md Core Features): dedizierte Tenant-Isolation-Tests. P2 (Medien-Anhänge, Push) bewusst aus PROJ-11 ausgeklammert, siehe dessen Non-Goals.
Empfohlene Baureihenfolge PROJ-13 bis PROJ-18: PROJ-13 → PROJ-14 → PROJ-15 → PROJ-16 → PROJ-17 → PROJ-18 (Reports brauchen die Melde-Funktion zuerst).
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.
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).