{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "users" %} {% block title %}{{ target.name }} - {{ t("Users") }} - {{ brand.name }}{% endblock %} {% block heading %}{{ target.name }}{% endblock %} {% block admin_content %}
{{ icon("chevron-left", "icon--sm") }} {{ t("All users") }} · {{ target.email }}
{% if saved %}{{ tm("Read-only, and deliberately: every switch here is set somewhere else — in the baseline or in a named group — and a control on this page would be a third place to change one thing. What it adds is the source, which is the question the grids could not answer without opening every group by eye.") }}
{% for section_name, defs in permission_groups.items() %}{{ t("Edited from the group's own page. One control per value, so a save here cannot undo a save there.") }}
{% if target.groups %}{{ t("In no group. They get the baseline and nothing more.") }}
{% endif %}{{ t("Counted from the first of the month, UTC. Recorded for every reply including one that was stopped or failed — an endpoint charges for tokens it generated whether or not anybody wanted them.") }}
{{ tm("Resolved across their groups by maximum — the union rule applied to numbers, so a second group can only ever grant more. Zero means no limit and wins outright, because a group saying “unlimited” must not count for less than one saying “a million”.") }}
{{ t("Model access is separate from permissions: a permission says what somebody may do, this says what they may do it with.") }}
{% if models %}{{ t("None. They cannot start a chat at all.") }}
{% endif %}{{ t("The API tokens this account made and the LLeMbas CLIs it signed in. Each acts as this account, with only its scopes. Revoking one deletes it and signs out whatever holds it at once.") }}
{% if not tokens %}{{ t("None.") }}
{% else %}| {{ t("Name") }} | {{ t("Kind") }} | {{ t("Scopes") }} | {{ t("Last used") }} | |
|---|---|---|---|---|
{{ token.name }}{{ token.prefix }}… |
{{ (t("app") if is_app(token) else t("device")) if token.kind == "device" else t("personal") }}
{% if token.device_host %} {{ token.device_host }}{% endif %} {% if token.id in linked %} {{ t("linked now") }}{% endif %} |
{{ token.scopes_json | join(", ") }} | {{ token.last_used_at.strftime("%Y-%m-%d %H:%M") if token.last_used_at else t("never") }} |
{{ t("Signs them out everywhere. An administrator resetting a password usually means the account is compromised or the person has gone.") }}
{{ t("Their chats and folders go too.") }}