35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
"""Web page routes for dashboard and config page."""
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse, RedirectResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
from utils.auth import check_auth
|
|
|
|
router = APIRouter()
|
|
templates = Jinja2Templates(directory="templates")
|
|
|
|
|
|
@router.get("/login", response_class=HTMLResponse)
|
|
async def login_page(request: Request):
|
|
"""Login page"""
|
|
# If already authenticated, redirect to dashboard
|
|
if check_auth(request):
|
|
return RedirectResponse(url="/", status_code=302)
|
|
return templates.TemplateResponse("login.html", {"request": request})
|
|
|
|
|
|
@router.get("/", response_class=HTMLResponse)
|
|
async def dashboard(request: Request):
|
|
"""Dashboard page - requires authentication"""
|
|
if not check_auth(request):
|
|
return RedirectResponse(url="/login", status_code=302)
|
|
print(">>> DASHBOARD ROUTE LOADED")
|
|
return templates.TemplateResponse("dashboard.html", {"request": request})
|
|
|
|
|
|
@router.get("/config", response_class=HTMLResponse)
|
|
async def config_page(request: Request):
|
|
"""Config page - requires authentication"""
|
|
if not check_auth(request):
|
|
return RedirectResponse(url="/login", status_code=302)
|
|
return templates.TemplateResponse("config.html", {"request": request})
|