Plain is headed towards 1.0! Subscribe for development updates →

 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)