diff --git a/app/routes/admin_pages.py b/app/routes/admin_pages.py index b03d5dda..4bfc1b3a 100644 --- a/app/routes/admin_pages.py +++ b/app/routes/admin_pages.py @@ -95,6 +95,32 @@ async def admin_login_page( return templates.TemplateResponse("admin/login.html", {"request": request}) +@router.get("/select-platform", response_class=HTMLResponse, include_in_schema=False) +async def admin_select_platform_page( + request: Request, + current_user: User | None = Depends(get_current_admin_optional), +): + """ + Render platform selection page for platform admins. + + Platform admins with access to multiple platforms must select + which platform they want to manage before accessing the dashboard. + Super admins are redirected to dashboard (they have global access). + """ + if not current_user: + # Not logged in, redirect to login + return RedirectResponse(url="/admin/login", status_code=302) + + if current_user.is_super_admin: + # Super admins don't need platform selection + return RedirectResponse(url="/admin/dashboard", status_code=302) + + return templates.TemplateResponse( + "admin/select-platform.html", + {"request": request, "user": current_user}, + ) + + # ============================================================================ # AUTHENTICATED ROUTES (Admin Only) # ============================================================================ diff --git a/app/templates/admin/partials/header.html b/app/templates/admin/partials/header.html index 38a0e621..4236725c 100644 --- a/app/templates/admin/partials/header.html +++ b/app/templates/admin/partials/header.html @@ -20,6 +20,27 @@