Files
home-automation/app/api/routes/pages.py
T

43 lines
1.6 KiB
Python
Raw Normal View History

2026-04-19 20:19:58 +02:00
from pathlib import Path
2026-04-20 15:16:47 +02:00
from fastapi import APIRouter, Depends, Request, status
from fastapi.responses import HTMLResponse, RedirectResponse, Response
2026-04-19 20:19:58 +02:00
from fastapi.templating import Jinja2Templates
from app.config import Settings
2026-04-20 15:16:47 +02:00
from app.dependencies import get_app_settings, get_current_auth_session
from app.services.auth import AuthenticatedSession
2026-04-19 20:19:58 +02:00
templates = Jinja2Templates(directory=str(Path(__file__).resolve().parents[2] / "templates"))
router = APIRouter(tags=["pages"])
@router.get("/", response_class=HTMLResponse)
def home(request: Request, settings: Settings = Depends(get_app_settings)) -> HTMLResponse:
context = {
"app_name": settings.app_name,
"app_env": settings.app_env,
"notion_status": "Legacy scope, removed from the Python rewrite target.",
}
return templates.TemplateResponse(request, "home.html", context)
2026-04-20 15:16:47 +02:00
@router.get("/admin", response_class=HTMLResponse)
def admin_page(
request: Request,
settings: Settings = Depends(get_app_settings),
current_auth: AuthenticatedSession | None = Depends(get_current_auth_session),
) -> Response:
if current_auth is None:
return RedirectResponse(url="/login", status_code=status.HTTP_303_SEE_OTHER)
context = {
"app_name": settings.app_name,
"app_env": settings.app_env,
"current_username": current_auth.user.username,
"csrf_token": current_auth.session.csrf_token,
"force_password_change": current_auth.user.force_password_change,
"password_change_error": None,
}
return templates.TemplateResponse(request, "admin.html", context)