- 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 %}
|
|
<div class="dashboard-page profile-page" data-page="profile-password">
|
|
{{ page_hero("Account", "Change password", "Enter your current password, then choose a new one (at least 8 characters).") }}
|
|
<section class="dashboard-panel dashboard-panel--primary">
|
|
<form id="profile-password-form" class="roles-form-grid profile-edit-form" autocomplete="off">
|
|
<label class="schema-field schema-field--wide">
|
|
<span class="schema-field__label">Current password</span>
|
|
<input type="password" id="profile-password-current" required="required" autocomplete="current-password" />
|
|
</label>
|
|
<label class="schema-field schema-field--wide">
|
|
<span class="schema-field__label">New password</span>
|
|
<input type="password" id="profile-password-new" required="required" minlength="8" autocomplete="new-password" />
|
|
</label>
|
|
<label class="schema-field schema-field--wide">
|
|
<span class="schema-field__label">Confirm new password</span>
|
|
<input type="password" id="profile-password-confirm" required="required" minlength="8" autocomplete="new-password" />
|
|
</label>
|
|
<div class="profile-edit-actions schema-field schema-field--wide">
|
|
<button type="submit" class="cta-button">Update password</button>
|
|
<button type="button" class="btn-muted" id="profile-password-cancel-btn">Cancel</button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
</div>
|
|
{% endblock %}
|