20 lines
723 B
Python
20 lines
723 B
Python
"""
|
|
Helper pour injecter automatiquement current_user dans le contexte Jinja2.
|
|
"""
|
|
from fastapi import Request
|
|
from fastapi.templating import Jinja2Templates
|
|
from starlette.responses import HTMLResponse, Response
|
|
|
|
|
|
def render(templates: Jinja2Templates, template_name: str,
|
|
request: Request, context: dict = None,
|
|
status_code: int = 200) -> HTMLResponse:
|
|
ctx = context or {}
|
|
ctx["request"] = request
|
|
if "current_user" not in ctx:
|
|
ctx["current_user"] = getattr(request.state, "current_user", None)
|
|
# Compatible avec toutes les versions de Starlette/FastAPI
|
|
response = templates.TemplateResponse(template_name, ctx)
|
|
response.status_code = status_code
|
|
return response
|