3x-ui/web
MHSanaei 88a3677318
feat(clients): enforce unique subId per client like email
Reject creating or editing a client with a subId already owned by a different client, mirroring the email-uniqueness checks against client_records in Create and Update (BulkCreate inherits via Create). The old multi-inbound model duplicated a client across inbounds sharing one subId, so this check was dropped; the first-class multi-client model makes per-client subId uniqueness correct again. Existing duplicates are left untouched; only new/edited duplicates are blocked.
2026-06-01 08:34:48 +02:00
..
controller feat(nodes): bulk panel self-update with live online indicator 2026-06-01 07:03:06 +02:00
entity fix(settings): sync generated schemas 2026-05-31 19:00:26 +02:00
global Feat/multi inbound clients (#4469) 2026-05-19 12:20:24 +02:00
job test: name temp sqlite db x-ui.db to match the real db filename 2026-05-31 15:25:05 +02:00
locale v3 2026-05-10 02:13:42 +02:00
middleware feat: complete Zod migration of frontend + bulk client batching (#4599) 2026-05-27 04:26:50 +02:00
network docs: add comments for all functions 2025-09-20 09:35:50 +02:00
runtime feat(nodes): bulk panel self-update with live online indicator 2026-06-01 07:03:06 +02:00
service feat(clients): enforce unique subId per client like email 2026-06-01 08:34:48 +02:00
session Security hardening: sessions, SSRF, CSP nonce, CSRF logout, trusted proxies (#4275) 2026-05-13 12:52:52 +02:00
translation feat(inbounds): attach existing clients to an inbound in one click 2026-06-01 07:26:30 +02:00
websocket fix(websocket): order register/unregister via single ops channel 2026-05-19 12:34:53 +02:00
web.go feat(frontend): TanStack Query + React Router migration & in-panel API docs (#4541) 2026-05-24 21:34:52 +02:00