mirror of
https://github.com/fosrl/pangolin.git
synced 2025-08-01 00:24:38 +02:00
ensure subdomain is null if is base domain
This commit is contained in:
parent
f1291d4d7d
commit
a3be0d4655
3 changed files with 51 additions and 30 deletions
|
@ -35,8 +35,8 @@ const createHttpResourceSchema = z
|
|||
name: z.string().min(1).max(255),
|
||||
subdomain: z
|
||||
.string()
|
||||
.optional()
|
||||
.transform((val) => val?.toLowerCase()),
|
||||
.nullable()
|
||||
.optional(),
|
||||
siteId: z.number(),
|
||||
http: z.boolean(),
|
||||
protocol: z.enum(["tcp", "udp"]),
|
||||
|
@ -201,7 +201,8 @@ async function createHttpResource(
|
|||
);
|
||||
}
|
||||
|
||||
const { name, subdomain, domainId } = parsedBody.data;
|
||||
const { name, domainId } = parsedBody.data;
|
||||
let subdomain = parsedBody.data.subdomain;
|
||||
|
||||
const [domainRes] = await db
|
||||
.select()
|
||||
|
@ -274,6 +275,10 @@ async function createHttpResource(
|
|||
}
|
||||
}
|
||||
|
||||
if (fullDomain === domainRes.domains.baseDomain) {
|
||||
subdomain = null;
|
||||
}
|
||||
|
||||
fullDomain = fullDomain.toLowerCase();
|
||||
|
||||
logger.debug(`Full domain: ${fullDomain}`);
|
||||
|
|
|
@ -35,8 +35,8 @@ const updateHttpResourceBodySchema = z
|
|||
.object({
|
||||
name: z.string().min(1).max(255).optional(),
|
||||
subdomain: subdomainSchema
|
||||
.optional()
|
||||
.transform((val) => val?.toLowerCase()),
|
||||
.nullable()
|
||||
.optional(),
|
||||
ssl: z.boolean().optional(),
|
||||
sso: z.boolean().optional(),
|
||||
blockAccess: z.boolean().optional(),
|
||||
|
@ -286,7 +286,7 @@ async function updateHttpResource(
|
|||
} else if (domainRes.domains.type == "cname") {
|
||||
fullDomain = domainRes.domains.baseDomain;
|
||||
} else if (domainRes.domains.type == "wildcard") {
|
||||
if (updateData.subdomain) {
|
||||
if (updateData.subdomain !== undefined) {
|
||||
// the subdomain cant have a dot in it
|
||||
const parsedSubdomain = subdomainSchema.safeParse(updateData.subdomain);
|
||||
if (!parsedSubdomain.success) {
|
||||
|
@ -341,11 +341,15 @@ async function updateHttpResource(
|
|||
.set({ fullDomain })
|
||||
.where(eq(resources.resourceId, resource.resourceId));
|
||||
}
|
||||
|
||||
if (fullDomain === domainRes.domains.baseDomain) {
|
||||
updateData.subdomain = null;
|
||||
}
|
||||
}
|
||||
|
||||
const updatedResource = await db
|
||||
.update(resources)
|
||||
.set(updateData)
|
||||
.set({...updateData, })
|
||||
.where(eq(resources.resourceId, resource.resourceId))
|
||||
.returning();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue