Files
RoleForge/app/templates/user-detail.xhtml
Sergey Antropoff b2d3b6b803 Профиль и аккаунт
- API и страницы профиля (редактирование, смена пароля, аватар), публичные карточки.
- Сайдбар: блок пользователя, пункт Users для admin/root, исправлен порядок
  инициализации (показ admin-only после initAuthSession, currentUser).
- GET /auth/me: ответ через ProfileMeResponse, исправлена валидация (is_founder bool).

Команды и роли
- Маршруты и UI команд; при редактировании роли: видимость Team, выбор команды
  в модалке, только команды с активным членством; API team_id в details/ update.
- GET /api/v1/teams?membership=active для списка «своих» команд.
- Форма роли: сегмент Team, панель выбора команды только при Team и не при
  с
2026-05-05 08:15:21 +03:00

28 lines
1.5 KiB
HTML

{% extends "base.xhtml" %}
{% from "macros/page-hero.xhtml" import page_hero %}
{% block content %}
{{ page_hero("Admin", "User profile", "View clusters, role bindings, access, and recent audit. The chief administrator may apply a timed suspension (reason recorded). Any administrator may remove a user from the directory.") }}
<div
class="dashboard-page user-detail-page"
id="user-detail-root"
data-user-id="{{ user_id }}"
data-initial-username="User #{{ user_id }}"
>
<p class="muted" id="user-detail-loading" style="margin:0 0 1rem">Loading…</p>
<p id="user-detail-error" class="form-output" style="display:none" role="alert" aria-live="assertive"></p>
<div id="user-detail-content" class="user-detail-content" style="display:none">
<section class="dashboard-panel">
<h1 class="page-header user-detail-title"><span id="user-detail-username">User #{{ user_id }}</span></h1>
<p class="user-detail-public-link-wrap" style="margin:0 0 0.75rem">
<a href="/profile/user/{{ user_id }}" class="cta-button cta-button--secondary">Open public profile</a>
</p>
<div class="form-actions form-actions-start user-admin-actions" id="user-admin-actions" aria-label="User administration"></div>
<div class="admin-user-detail__grid" id="user-detail-body"></div>
</section>
</div>
<p style="margin-top:20px" class="pagination-row">
<a href="/users" class="cta-button cta-button--secondary" id="user-detail-back">← Back to list</a>
</p>
</div>
{% endblock %}