1from __future__ import annotations
2
3from typing import TYPE_CHECKING, Any
4
5from jinja2 import pass_context
6
7from plain.templates import register_template_global
8
9from .requests import get_request_user
10
11if TYPE_CHECKING:
12 from jinja2.runtime import Context
13
14
15@register_template_global
16@pass_context
17def get_current_user(context: Context) -> Any | None:
18 """Get the authenticated user for the current request."""
19 request = context.get("request")
20 assert request is not None, "No request in template context"
21 return get_request_user(request)