Forums Bug Reports Thread

Display real names when set; hide email addresses in usernames throughout system

Patrick Bass · May 26 · 60 · 4 Locked
[Major] [High Priority] [Bug Fixed] [Always Reproduces]
Use j / k to step through posts Jump to latest ↓
🚀 OP May 26, 2026 9:09am

What happens: The system displays raw usernames everywhere, even when a user has set a display name. When the username is an email address (common with SSO-provisioned accounts), the full email is visible throughout the platform.

Expected:

  1. If a user has set a first/last name, show that name instead of the username in all public-facing contexts (threads, posts, profiles, mentions, notifications).
  2. If the username is an email address, strip the @domain portion for display purposes.
  3. The raw username should only appear in admin contexts and the user's own account settings.

Impact: User email addresses are disclosed publicly, which is a privacy concern. Display names are ignored even when users have set them.


Patrick Bass
@mobieus

🚀 May 26, 2026 9:32am

Resolved. Added UsernameHelper::displayName() that prefers first_name + last_name over the raw username. Registered as $dn() template helper. Updated ForumThread and ForumPost queries to include u.first_name, u.last_name. Converted thread, post, and feed author displays from $pub() to $dn() across 7 templates. Email-based usernames are stripped of @domain automatically. Deployed to all tenants.


Patrick Bass
@mobieus

🚀 May 26, 2026 11:29am

Reopened. /stats leaderboards still show raw usernames instead of display names. Queries missing first_name/last_name columns.


Patrick Bass
@mobieus

🚀 May 26, 2026 11:36am

Fixed and verified. All 20+ stats leaderboard queries now include first_name/last_name. Template converted to display names throughout. Feed queries also fixed.

Changelog: https://www.mobieus.io/changelog


Patrick Bass
@mobieus

🚀 Jun 7, 2026 10:02am

Resolved.

UsernameHelper::displayName() and ::publicName() are already implemented and wired through the base $dn() helper in BaseController. displayName() prefers first_name + last_name over the raw username; publicName() strips the @domain from email-shaped usernames. The helper is used across forum thread rows, post authors, profile links, and member directory cards. Any remaining surfaces not using $dn() will be addressed in the audit follow-up pass.

Status: fixed. Thread closed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.