refactor(auth): consolidate PUBLIC_MODE and mutation guards into reusable helpers (#909)

* refactor(auth): consolidate PUBLIC_MODE and mutation guards into reusable helpers

* fix: fix websocket test override
This commit is contained in:
Juan Diego García
2026-03-12 10:51:26 -05:00
committed by GitHub
parent cf6e867cf1
commit 4ae56b730a
15 changed files with 96 additions and 86 deletions

View File

@@ -16,7 +16,6 @@ from reflector.db.meetings import (
)
from reflector.db.rooms import rooms_controller
from reflector.logger import logger
from reflector.settings import settings
from reflector.utils.string import NonEmptyString
from reflector.video_platforms.factory import create_platform_client
@@ -92,15 +91,15 @@ class StartRecordingRequest(BaseModel):
async def start_recording(
meeting_id: NonEmptyString,
body: StartRecordingRequest,
user: Annotated[Optional[auth.UserInfo], Depends(auth.current_user_optional)],
user: Annotated[
Optional[auth.UserInfo], Depends(auth.current_user_optional_if_public_mode)
],
) -> dict[str, Any]:
"""Start cloud or raw-tracks recording via Daily.co REST API.
Both cloud and raw-tracks are started via REST API to bypass enable_recording limitation of allowing only 1 recording at a time.
Uses different instanceIds for cloud vs raw-tracks (same won't work)
"""
if not user and not settings.PUBLIC_MODE:
raise HTTPException(status_code=401, detail="Not authenticated")
meeting = await meetings_controller.get_by_id(meeting_id)
if not meeting:
raise HTTPException(status_code=404, detail="Meeting not found")