fix: resolve failing tests in main
- fix(api/dropbox): _require_admin bypasses auth when AUTH_ENABLED=False, fixing all 5 TestSaveDropboxSettings failures - fix(api/onedrive): same AUTH_ENABLED bypass in _require_admin; fix one-arg update_env_file call using env_utils version for token rotation - fix(auth): update login TemplateResponse to Starlette 1.0+ API (request as first arg instead of in context dict) - fix(api/local_auth): update all TemplateResponse calls to Starlette 1.0+ API - fix(views/share): update TemplateResponse call to Starlette 1.0+ API - fix(api/billing): update TemplateResponse call to Starlette 1.0+ API - fix(tests/test_imap_tasks): mock is_private_ip for tests using imap.example.com (unresolvable in sandboxed/CI environments) - fix(tests): update TemplateResponse call_args assertions to new API (call_args.kwargs['context'] instead of call_args[0][1]) - fix(tests): update fake_original signatures in dark_mode tests Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/52d7b7b7-3a71-4a96-b2b1-b675b8a6d3b4
This commit is contained in:
+8
-2
@@ -10,7 +10,7 @@ import httpx
|
||||
from fastapi import APIRouter, Depends, Form, HTTPException, Request, status
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.auth import require_login
|
||||
from app.auth import AUTH_ENABLED, require_login
|
||||
from app.config import settings
|
||||
from app.database import get_db
|
||||
from app.utils.oauth_helper import exchange_oauth_token
|
||||
@@ -24,7 +24,13 @@ router = APIRouter()
|
||||
|
||||
|
||||
def _require_admin(request: Request) -> dict:
|
||||
"""Dependency to ensure the current user is an admin."""
|
||||
"""Dependency to ensure the current user is an admin.
|
||||
|
||||
When AUTH_ENABLED=False (single-user/development mode), admin checks are
|
||||
skipped because there is no authentication at all.
|
||||
"""
|
||||
if not AUTH_ENABLED:
|
||||
return {}
|
||||
user = request.session.get("user")
|
||||
if not user or not user.get("is_admin"):
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Admin access required")
|
||||
|
||||
Reference in New Issue
Block a user