From 67a0f1bc0895a2478d82cbb18622cb6b66c7f9b6 Mon Sep 17 00:00:00 2001 From: William Tetlie Date: Wed, 1 Oct 2025 10:49:30 +0200 Subject: [PATCH 1/2] :bug: allow deleted members to be removed as event participants --- app/api/events.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/api/events.py b/app/api/events.py index 0b4a930..91995ee 100644 --- a/app/api/events.py +++ b/app/api/events.py @@ -503,13 +503,10 @@ def is_confirmed(request: Request, id: str, token: AccessTokenPayload = Depends( def remove_participant(request: Request, id: str, uid: str, token: AccessTokenPayload = Depends(authorize_admin)): db = get_database(request) event = get_event_or_404(db, id) - member = db.members.find_one({'id': UUID(uid)}) - - if not member: - raise HTTPException(404, "User could not be found") + uid = UUID(uid) participant = db.events.find_one({"eid": event["eid"]}, {"participants": { - "$elemMatch": {"id": member["id"]}}}) + "$elemMatch": {"id": uid}}}) if not participant: raise HTTPException(400, "User not joined event!") @@ -520,7 +517,7 @@ def remove_participant(request: Request, id: str, uid: str, token: AccessTokenPa raise HTTPException(400, "User not joined event!") db.events.update_one({'eid': event['eid']}, { - "$pull": {"participants": {"id": member["id"]}}}) + "$pull": {"participants": {"id": uid}}}) return Response(status_code=200) From cd09baf6e1de9cd90b0b25fcdce3b18e549c6d1e Mon Sep 17 00:00:00 2001 From: William Tetlie Date: Wed, 1 Oct 2025 10:55:10 +0200 Subject: [PATCH 2/2] :bug: remove deleted users from event in updateParticipantsOrder --- app/api/events.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/api/events.py b/app/api/events.py index 91995ee..e24d13c 100644 --- a/app/api/events.py +++ b/app/api/events.py @@ -538,6 +538,12 @@ async def reorder_participants(request: Request, id: str, position_update: Parti raise HTTPException( 400, "Not valid: got invalid or outdated participant list") + participants = [ + participant + for participant in participants + if db.members.find_one({'id': participant['id']}) != None + ] + for participant in position_update.updateList: participant = participant.model_dump() for i, p in enumerate(participants):