Skip to content

Fix Discord emoji encoding, add instant purge, mandatory display names, email change - #26

Merged
Xenne93 merged 1 commit into
mainfrom
feature/account-improvements
Aug 19, 2026
Merged

Fix Discord emoji encoding, add instant purge, mandatory display names, email change#26
Xenne93 merged 1 commit into
mainfrom
feature/account-improvements

Conversation

@Xenne93

@Xenne93 Xenne93 commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Four related changes:

  1. Discord emoji fix: offline/online status embeds showed mangled characters (mojibake) instead of the intended emoji - fixed at the byte level.
  2. Instant purge: Panel Settings now has a 'Delete All Now' button alongside the existing older-than-X-days purge, for immediate cleanup.
  3. Mandatory Display Name: renamed the existing optional Nickname field to DisplayName, required at setup, editable from Security Settings, shown in the navbar instead of email. Existing accounts get a blocking one-time modal to set one.
  4. Change Email: added to Security Settings, gated behind current password. Also fixes a real bug this surfaced - SecurityBindingMiddleware re-resolves the user by their email claim on every request, so the old session needs to be explicitly revoked and the cookie cleared server-side as part of the change, or the user gets stuck on a raw 401 error page instead of being redirected to login.

All four flows were tested end-to-end in a local Docker build (fresh setup wizard, display name save + navbar update, change email + re-login, instant purge, and the legacy-account display-name gate including its stacking conflict with the existing welcome dialog).

…s, email change

- Fix mojibake in Discord embed messages: the offline/online status emoji
  had been mangled into a UTF-8-as-Windows-1252 double-encoding at some
  point in the source file, showing as garbled characters in Discord
- Panel Settings: add a "Delete All Now" button next to the existing
  older-than-X-days purge control, for immediately clearing every record
  in a category on demand
- Add a mandatory Display Name, shown across the panel (navbar, moderator
  lists, audit log) instead of the user's email address:
  - Renamed the existing (optional) ApplicationUser.Nickname field to
    DisplayName, with a migration and all call sites updated
  - Required at initial admin setup
  - Editable from Security Settings
  - Existing accounts created before this field existed are prompted with
    a blocking modal on next login until they set one
- Add email address changes from Security Settings, gated behind the
  current password. Also revokes the current session and clears the auth
  cookie server-side as part of the change - SecurityBindingMiddleware
  re-resolves the user by their email claim on every request, so leaving
  the old session's cookie in place would 401 all further requests
  (including the follow-up logout call and even loading the login page)
  until the browser's cookies were cleared manually
- TwModal: add an optional ZIndexClass parameter so the new mandatory
  display-name gate can render above other in-app modals (e.g. the
  first-run "no servers yet" welcome dialog) instead of stacking behind
  them
@Xenne93
Xenne93 merged commit a8fe8ce into main Aug 19, 2026
5 of 6 checks passed
@Xenne93
Xenne93 deleted the feature/account-improvements branch August 19, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant