1d669fd1d0
feat: skin site UUID lookup - auto-fetch UUID from player name
...
- GET /settings/uuid-lookup?site=&name= : proxy Yggdrasil API
(POST {site}/api/yggdrasil/api/profiles/minecraft), SSRF guard,
10s timeout, name regex, UUID formatting (with dashes)
- GET /settings/skin-site : public read of configured skin site
- settings page: 皮肤站地址 config
- bind identity modals (player dashboard + admin users): 获取UUID button,
auto-fill site from settings, auto-fill UID from lookup
- verified live against littleskin.cn (Steve -> df273bda...)
- API docs updated
2026-08-17 02:05:21 +08:00
559970c5b7
feat: one account can bind both netease + skin identities
...
- db: user_identities table (UNIQUE user_id+source), migrate backfill from users
- auth: GET/POST/DELETE /api/auth/identities - bind/unbind/list identities
(netease requires UID, one per source, name uniqueness, keep >=1)
- register/external/plugin/admin-created users auto-write primary identity
- tickets: submit uses selected identity (validated belongs to user)
- dashboard: 我的身份 card with bind/unbind UI
- ticket-create: identity selector when >1 identity
2026-08-17 01:17:09 +08:00
7bc22dee0c
fix: add source field to dashboard ban form
2026-07-19 00:40:54 +08:00
2e09dd2d3a
fix: pass bans to renderContent, restore exports wrapper
2026-07-18 01:14:43 +08:00
2a12e7b740
fix: ban duration >= not >, auto-prefill min duration
2026-07-18 01:11:41 +08:00
5ed109ec0e
feat: ban list with dashboard widget, owner add/edit bans
2026-07-18 00:52:33 +08:00
021351d898
fix: restore from regex corruption, JS-bind modal close, data-action delegation
2026-07-15 03:53:16 +08:00
f0e891b17c
fix: data-action delegation + convert onclick to event listeners, sidebar+logout+modals
2026-07-15 02:44:18 +08:00
4e66db0406
fix: dashboard uses Auth.isOwner for export endpoint, admin was getting 403
2026-07-12 13:06:36 +08:00
9241dd6a6f
fix: add appeal button, hide top bar when logged in so sidebar is clickable
2026-07-12 02:14:25 +08:00
247a4e851d
feat: MC Report System - MySQL + Express + Vanilla JS SPA
2026-07-12 01:23:19 +08:00