43 lines
2.0 KiB
Markdown
43 lines
2.0 KiB
Markdown
---
|
|
type: User Story
|
|
title: Manage linked accounts from the dashboard
|
|
description: Authenticated users maintain their profile and active Java Edition accounts.
|
|
tags: [player, dashboard, minecraft, profile]
|
|
timestamp: 2026-08-01T23:10:59Z
|
|
story_id: US-005
|
|
status: 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
|
|
|
|
- [x] Given an authenticated user, then only their own profile, accounts, and IP observations are visible and mutable.
|
|
- [x] The user can update their preferred name.
|
|
- [x] The user can add Mojang-verified or explicitly confirmed accounts from an allowed network.
|
|
- [x] The user can soft-remove an active account.
|
|
- [x] The user can choose exactly one active primary account.
|
|
- [x] Removing a primary account promotes another active account when one exists.
|
|
- [x] Name, primary, and account-removal changes automatically synchronize the expected Discord nickname and report the result.
|
|
- [x] The dashboard shows recent portal and game IP observations with classification and available location.
|
|
- [x] The dashboard shows the user's Discord display name, username, guild nickname, and immutable Discord ID.
|
|
- [x] The dashboard shows the single effective access group and whether it grants Minecraft access.
|
|
- [x] The user can revoke the current session by signing out.
|
|
|
|
# Implementation
|
|
|
|
- [`apps/web/src/app/account/page.tsx`](../apps/web/src/app/account/page.tsx)
|
|
- [`apps/web/src/app/account/actions.ts`](../apps/web/src/app/account/actions.ts)
|
|
- [`apps/web/src/app/auth/actions.ts`](../apps/web/src/app/auth/actions.ts)
|
|
|
|
# Validation
|
|
|
|
Server actions verify the current session and constrain every account lookup by the authenticated user ID. Nickname result announcements are covered by [`apps/web/src/components/nickname-notice.test.tsx`](../apps/web/src/components/nickname-notice.test.tsx).
|
|
|
|
# Related Stories
|
|
|
|
- [Synchronize Discord nicknames](us-006-discord-nickname.md)
|
|
- [Enrich login IPs](us-007-ip-intelligence.md)
|