Site Admin: user management #59
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#59
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Instance operators need basic user administration (support, abuse handling, GDPR groundwork).
Scope
Admin area 'Users': paginated searchable list (username, e-mail, status, created, last login, pond count), actions: disable/enable (disabled users cannot log in; sessions revoked), resend verification, delete user (two-step confirm; personal pond to trash, authored content pseudonymized per security.md — implement the pseudonymization service), grant/revoke Site Admin (not on self).
Acceptance criteria
Technical notes
Dependencies
Depends on #52.
Size: ~1.5 days
Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add
deanden), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.#59 verifiziert & abgeschlossen — User-Verwaltung + Pseudonymisierung.
Pipeline (
ae8cdd0): alle 7 Kontexte grün — CI (Lint/Typecheck/Test, i18n:check), Auth-e2e-Pack (inkl.admin-users), Build → Deploy-Test → Smoke → Promote-Int.Live auf Test + Int (
GET /api/v1/admin/users):fixture-admin) →200, liefert Nutzerliste (Test 3 / Int 6, mit Status,isSiteAdmin,pondCount,lastLoginAt).collab-anna, Int) →403(SiteAdminGuard).401.Enthalten: Liste/Suche/Pagination, Disable/Enable, Bestätigungs-Mail erneut senden, Site-Admin-Flag setzen/entfernen, Löschen mit Pseudonymisierung (
PseudonymizationServicescrubbt PII →deleted-<id>/ „Gelöschte Person", entferntUserIdentity+Session, persönlicher Teich in Papierkorb). Guards:cannot_modify_self,last_site_admin. de/en-i18n mit Key-Parität (inac48e9erepariert).