{# Active sessions, as one swappable section. Each row is a signed-in browser somewhere. Only a truncated prefix of the session id reaches this page: enough to name a row for revocation, useless for forging the cookie it belongs to. The current session's Revoke is disabled rather than hidden - the operator should see that the rule exists. Ending the session you are inside is sign-out, which also clears the browser's cookies; the server refuses it here for the same reason. A refusal renders at 200 with the problem inline: htmx does not swap an error status, so answering 400 would freeze the screen and report nothing. #} {% import "_macros.html" as m %}
{% if sessions_problem %} {{ m.problem(sessions_problem.fix, sessions_problem.output) }} {% endif %} {% if panel_sessions %} {% for s in panel_sessions %} {% endfor %}
Address Signed in Last seen Expires Actions
{{ s.client_ip }} {% if s.is_current %} {{ m.badge("active", "this session") }}{% endif %} {{ s.created | since }} {{ s.last_seen | since }} {{ s.expires | until }} {% if s.is_current %} {% else %} {% endif %}
{% else %}

No sessions. Yours would be here; it may authenticate as a Bearer token.

{% endif %}