Files
thuttu d1d594674f feat(admin): manage member account access
Allow administrators to freeze, unfreeze, and permanently delete member accounts with related content cleanup.
2026-09-01 20:09:04 +03:00

18 lines
2.5 KiB
HTML

{% extends 'base.html' %}
{% block title %}Account administration | Eternity Project{% endblock %}
{% block content %}
<section class="editor-wrap">
<div class="section-head"><span>ACCOUNT QUEUE</span><span>{{ users|length }} REGISTERED</span></div>
<div class="account-table" role="table">
<div class="account-row account-head" role="row"><span>HANDLE / EMAIL</span><span>REGISTERED</span><span>MFA</span><span>STATUS / ACTIONS</span></div>
{% for user in users %}
<div class="account-row" role="row">
<strong>{{ user.real_name or user.username }}{% if user.role == 'admin' %} <small>ADMIN</small>{% endif %}<small class="email">@{{ user.username }} / {{ user.email or 'NO EMAIL' }}{% if user.email %} / {{ 'VERIFIED' if user.email_verified else 'UNVERIFIED' }}{% endif %}</small></strong>
<span>{{ user.created_at[:10] }}</span>
<span>{{ 'ENABLED' if user.mfa_enabled else 'PENDING' }}</span>
<span class="account-actions">{% if user.role == 'member' %}{% if not user.is_approved %}<form method="post" action="{{ url_for('approve_user', user_id=user.id) }}"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button compact" type="submit">Approve</button></form>{% endif %}{% if user.is_frozen %}<strong>FROZEN</strong><form method="post" action="{{ url_for('unfreeze_user', user_id=user.id) }}"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button compact" type="submit">Unfreeze</button></form>{% else %}<form method="post" action="{{ url_for('freeze_user', user_id=user.id) }}" onsubmit="return confirm('Freeze this account? The member will be signed out on their next request.');"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button compact" type="submit">Freeze</button></form>{% endif %}{% if user.is_approved %}<form method="post" action="{{ url_for('admin_password_reset', user_id=user.id) }}"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button compact" type="submit">Reset password</button></form>{% endif %}<form method="post" action="{{ url_for('delete_user', user_id=user.id) }}" onsubmit="return confirm('Permanently delete this account, its posts, and all uploaded images? This cannot be undone.');"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button compact delete-account" type="submit">Delete</button></form>{% else %}APPROVED{% endif %}</span>
</div>
{% endfor %}
</div>
</section>
{% endblock %}