{# settings/users.html — Settings › Users (#5336): every account, active ones first. A row opens the account's page. #} {% extends "base.html" %} {% from "_macros.html" import crumbs, page_header, status_badge %} {% from "settings/_tabs.html" import settings_tabs %} {% block title %}Settings — Users — Steward{% endblock %} {% block section_tabs %}{{ settings_tabs("users") }}{% endblock %} {% block breadcrumb %}{{ crumbs([("Settings", "/settings/"), ("Users", "")]) }}{% endblock %} {% block content %} {% call page_header("Users") %}Invite by emailAdd user{% endcall %} {% if done %}
{{ users|length }} account{{ 's' if users|length != 1 }} · {{ admins }} active admin{{ 's' if admins != 1 }} {%- if disabled %} · {{ disabled }} disabled{% endif %}
| User | Signs in with | Role | Emailed | Last sign-in | AI tokens |
|---|---|---|---|---|---|
|
{{ u.username }}
{%- if u.id == session.user_id %} (you){% endif %}
{{ u.email }}
|
{{ sources.get(u.auth_source, u.auth_source) }} | {{ u.role.value|capitalize }}{% if not u.is_active %} {{ status_badge("inactive", "Disabled") }}{% endif %} | {% if u.id not in reachable %}no address {%- elif gets[u.id] %}{{ gets[u.id]|join(", ") }}{% else %}—{% endif %} | {% if last.get(u.id) %}{{ last[u.id]|ago }}{% else %}—{% endif %} | {{ tokens.get(u.id, 0) or "—" }} |
| Sent to | Role | Sent by | Link works until | Actions |
|---|---|---|---|---|
| {{ i.email }} | {{ i.role.value|capitalize }} | {{ by }} | {% if state == "expired" %}{{ status_badge("inactive", "Expired") }}{% else %}{{ i.expires_at|when }}{% endif %} |
Accounts that sign in with LDAP or single sign-on are added at their first sign-in, with the role their provider's groups give them (Settings › Authentication).
{% endblock %}