mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-22 05:09:05 +00:00
server: add PUBLIC_MODE settings to allow listing for anonymous user
This commit is contained in:
@@ -87,5 +87,9 @@ class Settings(BaseSettings):
|
||||
AUTH_FIEF_CLIENT_ID: str | None = None
|
||||
AUTH_FIEF_CLIENT_SECRET: str | None = None
|
||||
|
||||
# API public mode
|
||||
# if set, all anonymous record will be public
|
||||
PUBLIC_MODE: bool = False
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
@@ -214,12 +214,13 @@ class DeletionStatus(BaseModel):
|
||||
|
||||
@router.get("/transcripts", response_model=Page[GetTranscript])
|
||||
async def transcripts_list(
|
||||
user: auth.UserInfo = Depends(auth.current_user),
|
||||
user: Annotated[Optional[auth.UserInfo], Depends(auth.current_user_optional)],
|
||||
):
|
||||
if not user:
|
||||
if not user and not settings.PUBLIC_MODE:
|
||||
raise HTTPException(status_code=401, detail="Not authenticated")
|
||||
|
||||
return paginate(await transcripts_controller.get_all(user_id=user["sub"]))
|
||||
user_id = user["sub"] if user else None
|
||||
return paginate(await transcripts_controller.get_all(user_id=user_id))
|
||||
|
||||
|
||||
@router.post("/transcripts", response_model=GetTranscript)
|
||||
@@ -367,8 +368,13 @@ ws_manager = WebsocketManager()
|
||||
|
||||
|
||||
@router.websocket("/transcripts/{transcript_id}/events")
|
||||
async def transcript_events_websocket(transcript_id: str, websocket: WebSocket):
|
||||
transcript = await transcripts_controller.get_by_id(transcript_id)
|
||||
async def transcript_events_websocket(
|
||||
transcript_id: str,
|
||||
websocket: WebSocket,
|
||||
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)
|
||||
if not transcript:
|
||||
raise HTTPException(status_code=404, detail="Transcript not found")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user