Skip to content

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.