1.9 KiB
1.9 KiB
type, title, description, tags, timestamp, story_id, status
| type | title | description | tags | timestamp | story_id | status | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| User Story | Manage linked accounts from the dashboard | Authenticated users maintain their profile and active Java Edition accounts. |
|
2026-08-01T22:04:17Z | US-005 | verified |
User Story
As a registered player, I want to manage my profile and linked Minecraft accounts, so that my whitelist identity remains current.
Acceptance Criteria
- Given an authenticated user, then only their own profile, accounts, and IP observations are visible and mutable.
- The user can update their preferred name.
- The user can add Mojang-verified or explicitly confirmed accounts from an allowed network.
- The user can soft-remove an active account.
- The user can choose exactly one active primary account.
- Removing a primary account promotes another active account when one exists.
- Name and primary changes preview the expected Discord nickname and require explicit confirmation before either profile mutation occurs.
- The dashboard shows recent portal and game IP observations with classification and available location.
- The user can revoke the current session by signing out.
Implementation
apps/web/src/app/account/page.tsxapps/web/src/app/account/actions.tsapps/web/src/app/auth/actions.ts
Validation
Server actions verify the current session, constrain every account lookup by the authenticated user ID, and require the explicit Discord confirmation field before name or primary-account mutations. Confirmation parsing is covered by apps/web/src/lib/dashboard-change-confirmation.test.ts.