feat(backend+frontend): Consent-API von Events entkoppeln #250
No reviewers
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner!250
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-249"
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?
Allgemein
closes #249
Altes Verhalten
Consent-Endpoint
PUT /api/v1/events/{event_id}/guests/{person_id}/consentwar an ein Event gekoppelt und erforderte einen existierendeneventGuest-Eintrag. Ein User ohne Einladung zu einem Event konnte keinen Consent abgeben. Der ConsentDialog lud via+layout.server.tszwingend die Invitations, um eine eventId zu ermitteln.Neues Verhalten
Neuer Endpoint
PUT /api/v1/persons/{person_id}/consentunabhaengig von Events:requireOwnDataOrGroupMember(eigene Person oder Haushaltsmitglied)guests.tsentfernt+layout.server.tslaedt nur noch groupMembers fuer Haushalts-ConsentBegruendung
Laut Design-Dokument (
02-datenmodell.md) ist Consent ein personenbezogenes Feature. Die Kopplung an Events war ein Implementierungsdetail ohne Design-Begruendung und verhinderte Consent fuer User ohne Einladung.Test-Hinweise
npm test(14 Consent-Tests, alle passed)npm test(917 Tests, alle passed)Checkliste
use:testidan neuen<button>,<a>,<form>-Elementen gesetzt? (keine neuen Elemente)e2e/specs/angelegt? (E2E-Tests unveraendert, UI-Flow identisch)Neuer Endpoint PUT /api/v1/persons/{person_id}/consent mit requireOwnDataOrGroupMember-Auth, ohne eventGuest-Pruefung. Alter Endpoint PUT /api/v1/events/{event_id}/guests/{person_id}/consent aus guests.ts entfernt. Frontend ConsentDialog: eventId- und invitations-Props entfernt, API-URL auf neuen persons-Endpoint umgestellt. +layout.server.ts laedt keine Invitations mehr fuer Consent-Dialog. OpenAPI-Spec, Design-Dokumente (02-datenmodell, 03-api-design, 03-autorisierungsmatrix, 04-frontend-architektur) und AGENTS.md aktualisiert. Unit-Tests (consent.test.ts) und Frontend-Tests (consent-dialog.test.ts) aktualisiert. closes #249