Accounts & moderation¶
/admin/accounts lists every auth.account row with paginated
search, filters by GM level / banned / bot / verified, and a per-row
detail page at /admin/accounts/:id.
List view¶
- Search across email, splintertag, first / last name, last login IP.
- Per-row badges: GM level, banned, suspended, soft-deleted, bot, unverified email, current online state.
- Bulk actions: invite codes (issue / revoke), force re-verify email, push a /splintertree announcement to a selected account list.
Detail view¶
- Profile fields (email, splintertag, names, language, joined, last login, last IP, expansion).
- GM access table (
auth.account_access): per-realm grants with ability to add or revoke a level. - Mute history (
auth.account_muted): active mute, expiry, reason, GM who applied it. - Ban history (
auth.account_banned): permanent vs temporary, unbandate, reason. Issuing a new ban respects the operator's default duration if not overridden. - Character roster identical to the public armory but with admin affordances (force unstuck, teleport, level set, gear template apply).
- Action history of GM-initiated changes against the account.
Password reset¶
Operators can reset any account's password via
PATCH /admin/accounts/:id { new_password }. Re-computes the SRP6
verifier against UPPER(email):UPPER(password) and writes the row;
the player has to re-login but doesn't lose any state.
Self-delete restore window¶
Soft-deleted accounts (auth.account.deleted_at) sit in the restore
window operators set via auth.app_setting.account_soft_delete_days.
Detail page shows the countdown; an admin can reverse or fast-forward
the deletion.
Mute¶
Account mute (auth.account_muted) blocks both in-game chat (via
the social worker's check) and forum writes (via
check_account_not_muted in the forum routes). UI: timer slider +
reason; "permanent" mode sets mutetime = 0 per AC convention.