From ac81617090035ded97e4eec4f3659e6a78cd3a48 Mon Sep 17 00:00:00 2001 From: Sergey Mankovsky Date: Mon, 3 Mar 2025 15:25:00 +0100 Subject: [PATCH] Allow shared transcripts deletion --- server/reflector/views/transcripts.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/reflector/views/transcripts.py b/server/reflector/views/transcripts.py index c4e2913c..b6e56c44 100644 --- a/server/reflector/views/transcripts.py +++ b/server/reflector/views/transcripts.py @@ -7,7 +7,9 @@ from fastapi_pagination import Page from fastapi_pagination.ext.databases import paginate from jose import jwt from pydantic import BaseModel, Field +from reflector.db.meetings import meetings_controller from reflector.db.migrate_user import migrate_user +from reflector.db.rooms import rooms_controller from reflector.db.transcripts import ( SourceKind, TranscriptParticipant, @@ -273,9 +275,16 @@ async def transcript_delete( user: Annotated[Optional[auth.UserInfo], Depends(auth.current_user_optional)], ): user_id = user["sub"] if user else None - transcript = await transcripts_controller.get_by_id(transcript_id, user_id=user_id) + transcript = await transcripts_controller.get_by_id(transcript_id) if not transcript: raise HTTPException(status_code=404, detail="Transcript not found") + + if transcript.meeting_id: + meeting = await meetings_controller.get_by_id(transcript.meeting_id) + room = await rooms_controller.get_by_id(meeting.room_id) + if room.is_shared: + user_id = None + await transcripts_controller.remove_by_id(transcript.id, user_id=user_id) return DeletionStatus(status="ok")