Commit Graph

10 Commits

Author SHA1 Message Date
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