mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-14 16:46:07 +00:00
6ee462ac8e
The panel's copy/QR share links are built client-side and fell back to window.location.hostname, so reaching the panel over an SSH tunnel (127.0.0.1/localhost) leaked localhost into the links - unlike the backend subscription path, which falls back to the configured Sub/Web Domain (issue #4829). Expose webDomain/subDomain via /defaultSettings and add preferPublicHost: when the browser host is loopback, prefer the configured Sub Domain (then Web Domain) for share/QR links. An explicit node override or per-inbound listen still wins; a routable browser host is kept as-is. Closes #4829
23 lines
779 B
TypeScript
23 lines
779 B
TypeScript
import { z } from 'zod';
|
|
|
|
export const DefaultsPayloadSchema = z.object({
|
|
expireDiff: z.number().optional(),
|
|
trafficDiff: z.number().optional(),
|
|
tgBotEnable: z.boolean().optional(),
|
|
subEnable: z.boolean().optional(),
|
|
subTitle: z.string().optional(),
|
|
subURI: z.string().optional(),
|
|
subJsonURI: z.string().optional(),
|
|
subJsonEnable: z.boolean().optional(),
|
|
subClashURI: z.string().optional(),
|
|
subClashEnable: z.boolean().optional(),
|
|
pageSize: z.number().optional(),
|
|
remarkModel: z.string().optional(),
|
|
datepicker: z.enum(['gregorian', 'jalalian']).optional(),
|
|
ipLimitEnable: z.boolean().optional(),
|
|
webDomain: z.string().optional(),
|
|
subDomain: z.string().optional(),
|
|
}).loose();
|
|
|
|
export type DefaultsPayload = z.infer<typeof DefaultsPayloadSchema>;
|