Public "Online now" now lists only players whose game account is linked to a STAFF website user (admin/editor/moderator) — linked players are no longer exposed publicly with their name and location. listOnlineLinked joins through to users and filters on role; the section is relabeled "Staff online". Character/roster/vendor reads gain an admin bypass: admins may view any character's data, while players (and editor/moderator staff) stay limited to accounts they have personally linked. The bypass lives in the shared player controller and only ever widens access for genuine admins. Also finalizes the uo-link character/vendor front end (player + admin character sheets, VendorSales component, ShardChar removed) and regenerates swagger-output.json. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018kj5s1QCKobuFPYmqxjy1q
18 lines
829 B
JavaScript
18 lines
829 B
JavaScript
import GameAccounts from '../../../components/GameAccounts.jsx'
|
|
import VendorSales from '../../../components/VendorSales.jsx'
|
|
import { api } from '../../../api/client.js'
|
|
|
|
// Staff link their OWN in-game account and view their characters — the same
|
|
// shared component players use, pointed at the staff self-service endpoints.
|
|
export default function AdminCharacters() {
|
|
return (
|
|
<section style={{ maxWidth: 760 }}>
|
|
<p className="sans" style={{ marginTop: 0, marginBottom: 22, color: 'var(--muted)', fontSize: '0.92rem', lineHeight: 1.6 }}>
|
|
Link your own game account to view your characters, stats, skills and vendors.
|
|
</p>
|
|
<GameAccounts scope={api.admin.shard} charTo={(serial) => `/admin/characters/${serial}`} />
|
|
<VendorSales fetchSales={api.admin.shard.sales} />
|
|
</section>
|
|
)
|
|
}
|