feat(admin): show recent address locations
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
## 2026-08-07
|
||||
|
||||
* **Extend**: Show each grouped recent address's latest approximate location and network classification on administrator user records.
|
||||
* **Refine**: Select each admin map marker from the user's latest coordinate-bearing clear or hosting observation while keeping VPN, proxy, and Tor activity in the network-risk view.
|
||||
|
||||
## 2026-08-02
|
||||
|
||||
@@ -3,7 +3,7 @@ type: User Story
|
||||
title: Manage users as an administrator
|
||||
description: Authorized operators search users and maintain their names, linked accounts, primaries, and Discord nicknames.
|
||||
tags: [admin, users, minecraft, discord]
|
||||
timestamp: 2026-08-02T15:03:59Z
|
||||
timestamp: 2026-08-07T23:02:04Z
|
||||
story_id: US-013
|
||||
status: verified
|
||||
---
|
||||
@@ -17,6 +17,9 @@ As an administrator, I want to manage a user's identity and Minecraft accounts,
|
||||
- [x] Administrators can search by preferred name, Discord username or ID, Minecraft username, or UUID.
|
||||
- [x] Search results show onboarding state, primary username, and active account count.
|
||||
- [x] A user detail view shows Discord display name, username, guild nickname, immutable ID, active accounts, groups, recent events, and recent IP observations.
|
||||
- [x] Each grouped recent address shows the latest observation's approximate location and classification, including clear, VPN, proxy, Tor, hosting, and unknown classifications.
|
||||
- [x] Missing IP enrichment is labelled as location unavailable and falls back to the stored observation classification.
|
||||
- [x] Address groups use the enrichment associated with their latest observation.
|
||||
- [x] Administrators can update the preferred name and synchronize Discord.
|
||||
- [x] Administrators can add Mojang-verified accounts or explicitly override an unverified username.
|
||||
- [x] Administrators can remove an account only after a visible confirmation step.
|
||||
@@ -43,7 +46,7 @@ As an administrator, I want to manage a user's identity and Minecraft accounts,
|
||||
|
||||
# Validation
|
||||
|
||||
Nickname fallback behavior is tested in [`packages/minecraft/test/minecraft.test.ts`](../packages/minecraft/test/minecraft.test.ts). Privileged routes pass TypeScript, lint, Semgrep, and production build checks.
|
||||
Nickname fallback behavior is tested in [`packages/minecraft/test/minecraft.test.ts`](../packages/minecraft/test/minecraft.test.ts). Latest-observation enrichment and classification fallback are covered by [`apps/web/src/lib/access-address-groups.test.ts`](../apps/web/src/lib/access-address-groups.test.ts). The full 107-test suite, TypeScript, lint, OKF validation, and the production build pass.
|
||||
|
||||
# Related Stories
|
||||
|
||||
|
||||
Reference in New Issue
Block a user