From 1033990e91644eb7e7301c31dc2a7c914a569402 Mon Sep 17 00:00:00 2001 From: Gabor Apati-Nagy Date: Wed, 22 Oct 2014 09:54:01 +0100 Subject: [PATCH] CLOUDSTACK-7765: Field Validations Missing for VPC IP Address Fields --- ui/scripts/network.js | 8 ++++++-- ui/scripts/sharedFunctions.js | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index fb293ed0b3a..05dc6b740f0 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -5340,12 +5340,16 @@ label: 'label.super.cidr.for.guest.networks', docID: 'helpVPCSuperCIDR', validation: { - required: true + required: true, + ipv4cidr: true } }, networkdomain: { docID: 'helpVPCDomain', - label: 'label.DNS.domain.for.guest.networks' + label: 'label.DNS.domain.for.guest.networks', + validation: { + ipv4: true + } }, publicLoadBalancerProvider: { label: 'label.public.load.balancer.provider', diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js index e044d24fc82..21dbe15bfb5 100644 --- a/ui/scripts/sharedFunctions.js +++ b/ui/scripts/sharedFunctions.js @@ -2293,3 +2293,24 @@ $.validator.addMethod("ipv6cidr", function(value, element) { return true; }, "The specified IPv6 CIDR is invalid."); +$.validator.addMethod("ipv4cidr", function(value, element) { + if (this.optional(element) && value.length == 0) + return true; + + var parts = value.split('/'); + if (typeof parts == 'undefined' || parts.length != 2) { + return false; + } + + if (!$.validator.methods.ipv4.call(this, parts[0], element)) + return false; + + if (parts[1] != Number(parts[1]).toString()) //making sure that "", " ", "00", "0 ","2 ", etc. will not pass + return false; + + if (Number(parts[1]) < 0 || Number(parts[1] > 32)) + return false; + + return true; +}, "The specified IPv4 CIDR is invalid."); +