Join-Requests als separate Tabelle (Option B) #130
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#130
Loading…
Add table
Add a link
Reference in a new issue
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?
Hintergrund
Im Rahmen von Issue #102 wurde der Bug behoben, dass ein Benutzer seine eigene Beitrittsanfrage genehmigen konnte. Als Sofortmassnahme (Option A) wurde
requireGroupMemberinauth.tsum den FilterapprovedBy: { not: null }ergaenzt und ein zusaetzlicher Self-Approval-Check im PUT-Handler eingebaut.Option B — Separate Tabelle fuer Join-Requests
Die aktuelle Architektur nutzt
GroupMember.approvedByals Zustandsindikator:null= ausstehend, gesetzt = genehmigt. Das fuehrt zu semantisch uneindeutigen Zustaenden.Vorgeschlagene Aenderung
JoinRequest { personId, groupId, createdAt }GroupMember.approvedBywirdrequired(NOT NULL in der DB)POST /join-requesterzeugt einenJoinRequest(keinGroupMembermehr)PUT /join-request + action: 'approve'erzeugtGroupMembermitapprovedByPUT /join-request + action: 'reject''loescht denJoinRequestgroupId+personIdUNIQUE inJoinRequestVorteile
JoinRequest= Anfrage,GroupMember= bestaetigte MitgliedschaftapprovedBykann nie null sein (NOT NULL Constraint)approvedBy: nullin WHERE-KlauselnapprovedBybeim Erstellen einesGroupMemberNachteile
GroupMember-Records migrieren)groupMember.createjetztjoinRequest.createaufrufenjoinRequest.findUniquestattgroupMember.findUniquenutzenStatus
Nicht umgesetzt. Option A ist aktiv (siehe Commit 3e3d6ab). Diese Issue dient der Evaluation fuer MS-REST ob der Aufwand gerechtfertigt ist.