diff --git a/server.py b/server.py index 75b6a8a..b8d1664 100644 --- a/server.py +++ b/server.py @@ -3046,11 +3046,15 @@ import storage_providers @app.get("/storage") async def list_storage(request: Request, user: User = Depends(get_optional_user)): - """List user's storage providers. HTML for browsers, JSON for API.""" + """List user's storage providers. HTML for browsers (default), JSON only if explicitly requested.""" + # Check if JSON explicitly requested + accept = request.headers.get("accept", "") + wants_json = "application/json" in accept and "text/html" not in accept + if not user: - if wants_html(request): - return RedirectResponse(url="/login", status_code=302) - raise HTTPException(401, "Authentication required") + if wants_json: + raise HTTPException(401, "Authentication required") + return RedirectResponse(url="/login", status_code=302) storages = await db.get_user_storage(user.username) @@ -3071,10 +3075,11 @@ async def list_storage(request: Request, user: User = Depends(get_optional_user) masked[k] = v storage["config_display"] = masked - if wants_html(request): - return await ui_storage_page(user.username, storages, request) + if wants_json: + return {"storages": storages} - return {"storages": storages} + # Default to HTML for browsers + return await ui_storage_page(user.username, storages, request) @app.post("/storage")