3x-ui/docs/Tasktracking/2026-04-26-fix-register-user-client-flow-autofill.md

55 lines
1.7 KiB
Markdown
Raw Normal View History

Task Record
Date: 2026-04-26
Related Module: web/service user registration client auto-provisioning
Change Type: Fix
Background
New user registration auto-creates clients across inbounds via `addUserClientsToAllInbounds`.
This path bypassed the previously added AddInboundClient flow auto-fill logic, so newly registered users could still get empty `flow` in eligible VLESS contexts.
Changes
Updated registration auto-provisioning path in `web/service/user.go`:
- When target inbound requires flow (`VLESS + TCP + TLS/Reality`), set client `Flow` to `xtls-rprx-vision`.
- Persist `flow` field in generated client entry when populated.
Added test in `web/service/user_test.go`:
- `TestRegisterUser_AutoFillFlowForEligibleVlessInbound`
- Verifies registered user gets `xtls-rprx-vision` flow in eligible VLESS inbound.
- Verifies non-VLESS inbound does not get forced flow.
Impact
Affected modules or files.
- `web/service/user.go`
- `web/service/user_test.go`
Whether APIs, database, config, build, or compatibility are affected.
- API unchanged.
- DB schema unchanged.
- Runtime behavior fixed for registration-created clients only.
Whether upstream or downstream callers are affected.
- Newly registered users now receive expected default flow in eligible VLESS inbounds.
Verification
List validation commands or checks performed.
- `go test ./web/service/...`
State the result.
- Passed.
If not verified, explain why.
- No remote runtime verification in deployed environment was performed locally.
Risks And Follow-Up
Remaining risks.
- Existing already-created clients are unaffected (no migration applied).
Recommended follow-up work.
- If needed, add a one-time migration tool to backfill empty flow for existing eligible clients.