mirror of
https://github.com/fosrl/pangolin.git
synced 2026-01-28 22:00:51 +00:00
Only permit ipv4 for now
This commit is contained in:
@@ -31,7 +31,12 @@ import { calculateUserClientsForOrgs } from "@server/lib/calculateUserClientsFor
|
|||||||
const createOrgSchema = z.strictObject({
|
const createOrgSchema = z.strictObject({
|
||||||
orgId: z.string(),
|
orgId: z.string(),
|
||||||
name: z.string().min(1).max(255),
|
name: z.string().min(1).max(255),
|
||||||
subnet: z.string()
|
subnet: z
|
||||||
|
// .union([z.cidrv4(), z.cidrv6()])
|
||||||
|
.union([z.cidrv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
|
.refine((val) => isValidCIDR(val), {
|
||||||
|
message: "Invalid subnet CIDR"
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
registry.registerPath({
|
registry.registerPath({
|
||||||
@@ -81,15 +86,6 @@ export async function createOrg(
|
|||||||
|
|
||||||
const { orgId, name, subnet } = parsedBody.data;
|
const { orgId, name, subnet } = parsedBody.data;
|
||||||
|
|
||||||
if (!isValidCIDR(subnet)) {
|
|
||||||
return next(
|
|
||||||
createHttpError(
|
|
||||||
HttpCode.BAD_REQUEST,
|
|
||||||
"Invalid subnet format. Please provide a valid CIDR notation."
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: for now we are making all of the orgs the same subnet
|
// TODO: for now we are making all of the orgs the same subnet
|
||||||
// make sure the subnet is unique
|
// make sure the subnet is unique
|
||||||
// const subnetExists = await db
|
// const subnetExists = await db
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ const createSiteResourceSchema = z
|
|||||||
if (data.mode === "host") {
|
if (data.mode === "host") {
|
||||||
// Check if it's a valid IP address using zod (v4 or v6)
|
// Check if it's a valid IP address using zod (v4 or v6)
|
||||||
const isValidIP = z
|
const isValidIP = z
|
||||||
.union([z.ipv4(), z.ipv6()])
|
// .union([z.ipv4(), z.ipv6()])
|
||||||
|
.union([z.ipv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
.safeParse(data.destination).success;
|
.safeParse(data.destination).success;
|
||||||
|
|
||||||
if (isValidIP) {
|
if (isValidIP) {
|
||||||
@@ -80,7 +81,8 @@ const createSiteResourceSchema = z
|
|||||||
if (data.mode === "cidr") {
|
if (data.mode === "cidr") {
|
||||||
// Check if it's a valid CIDR (v4 or v6)
|
// Check if it's a valid CIDR (v4 or v6)
|
||||||
const isValidCIDR = z
|
const isValidCIDR = z
|
||||||
.union([z.cidrv4(), z.cidrv6()])
|
// .union([z.cidrv4(), z.cidrv6()])
|
||||||
|
.union([z.cidrv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
.safeParse(data.destination).success;
|
.safeParse(data.destination).success;
|
||||||
return isValidCIDR;
|
return isValidCIDR;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ const updateSiteResourceSchema = z
|
|||||||
(data) => {
|
(data) => {
|
||||||
if (data.mode === "host" && data.destination) {
|
if (data.mode === "host" && data.destination) {
|
||||||
const isValidIP = z
|
const isValidIP = z
|
||||||
.union([z.ipv4(), z.ipv6()])
|
// .union([z.ipv4(), z.ipv6()])
|
||||||
|
.union([z.ipv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
.safeParse(data.destination).success;
|
.safeParse(data.destination).success;
|
||||||
|
|
||||||
if (isValidIP) {
|
if (isValidIP) {
|
||||||
@@ -89,7 +90,8 @@ const updateSiteResourceSchema = z
|
|||||||
if (data.mode === "cidr" && data.destination) {
|
if (data.mode === "cidr" && data.destination) {
|
||||||
// Check if it's a valid CIDR (v4 or v6)
|
// Check if it's a valid CIDR (v4 or v6)
|
||||||
const isValidCIDR = z
|
const isValidCIDR = z
|
||||||
.union([z.cidrv4(), z.cidrv6()])
|
// .union([z.cidrv4(), z.cidrv6()])
|
||||||
|
.union([z.cidrv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
.safeParse(data.destination).success;
|
.safeParse(data.destination).success;
|
||||||
return isValidCIDR;
|
return isValidCIDR;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user