QA: cross-feature permission hardening pack #60
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#60
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
Permissions cut across every M2–M5 feature; this pack pins the security-relevant combinations against regressions.
Scope
Build the permission fixture matrix (site admin, pond admin, editor, label-restricted editor, reader, public, foreign user) × surfaces (page read/edit, sidebar, search, backlinks, media, versions, trash, collab token, public HTML) as a parameterized e2e/integration suite; add negative tests for the 404-vs-403 policy; wire into the pipeline gate.
Acceptance criteria
apps/web/e2e/README.mdso later features extend itTechnical notes
Dependencies
Depends on #49, #52, #53, #56.
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.#60 verifiziert & abgeschlossen — Cross-Feature-Permission-Härtungsmatrix (Abschluss M5, QA-Gate).
Pipeline (
ae8cdd0): alle 7 Kontexte grün; der neuepermission-matrix-Pack läuft im Auth-e2e-Job (grün).Was der Pack pinnt (
apps/web/e2e/permission-matrix.spec.ts, API-Level): 7 Subjekte × 8 Oberflächen.secret-Deny), Reader, Public (anonym), Fremdnutzer (fixture-outsider, Mitglied von nichts).rw/ro), Sidebar-Liste, Suche, Versionen (History = Schreibrecht), Media, Public-HTML.404(Existenz verborgen), unautorisiertes Schreiben auf Lesbarem →403.Akzeptanzkriterium erfüllt: eine geschwächte Guard wird gefangen — Collab-Token temporär auf immer
rwgezwungen → Pack rot (2 Tests); zurückgesetzt → 4/4 grün. Laufzeit ~1 s.fixture-outsiderzum Seed ergänzt; e2e-README-Matrix dokumentiert.Damit ist M5 (Berechtigungen & Kontingente) komplett — #51–#60 alle grün und geschlossen.