diff --git a/web/src/pages/network/NetworkEditForm/NetworkEditForm.tsx b/web/src/pages/network/NetworkEditForm/NetworkEditForm.tsx index 99c3d1adbd..8893c7f2db 100644 --- a/web/src/pages/network/NetworkEditForm/NetworkEditForm.tsx +++ b/web/src/pages/network/NetworkEditForm/NetworkEditForm.tsx @@ -157,9 +157,9 @@ export const NetworkEditForm = () => { Validate.any( val, [ - Validate.CIDRv4, + (v: string) => Validate.CIDRv4(v, true), Validate.IPv4, - Validate.CIDRv6, + (v: string) => Validate.CIDRv6(v, true), Validate.IPv6, Validate.Empty, ], diff --git a/web/src/pages/wizard/components/WizardNetworkConfiguration/WizardNetworkConfiguration.tsx b/web/src/pages/wizard/components/WizardNetworkConfiguration/WizardNetworkConfiguration.tsx index 2de3308590..a58be23fda 100644 --- a/web/src/pages/wizard/components/WizardNetworkConfiguration/WizardNetworkConfiguration.tsx +++ b/web/src/pages/wizard/components/WizardNetworkConfiguration/WizardNetworkConfiguration.tsx @@ -149,9 +149,9 @@ export const WizardNetworkConfiguration = () => { Validate.any( val, [ - Validate.CIDRv4, + (v: string) => Validate.CIDRv4(v, true), Validate.IPv4, - Validate.CIDRv6, + (v: string) => Validate.CIDRv6(v, true), Validate.IPv6, Validate.Empty, ], diff --git a/web/src/shared/validators.ts b/web/src/shared/validators.ts index 23b24bbfc0..b0e492f3a7 100644 --- a/web/src/shared/validators.ts +++ b/web/src/shared/validators.ts @@ -65,11 +65,11 @@ export const Validate = { } return true; }, - CIDRv4: (ip: string): boolean => { + CIDRv4: (ip: string, allow_zero: boolean = false): boolean => { if (!ipv4WithCIDRPattern.test(ip)) { return false; } - if (ip.endsWith('/0')) { + if (ip.endsWith('/0') && !allow_zero) { return false; } if (!ipaddr.IPv4.isValidCIDR(ip)) { @@ -77,8 +77,8 @@ export const Validate = { } return true; }, - CIDRv6: (ip: string): boolean => { - if (ip.endsWith('/0')) { + CIDRv6: (ip: string, allow_zero: boolean = false): boolean => { + if (ip.endsWith('/0') && !allow_zero) { return false; } if (!ipaddr.IPv6.isValidCIDR(ip)) {