- 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 и не при с
28 lines
1.5 KiB
HTML
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 %}
|