mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-7764: No IP Address Validations when Adding Networks Added validations for Add Network form on IPv4 Gateway, IPv4 Netmask, IPv4 Start IP, IPv4 End IP, IPv6 Gateway, IPv6 CIDR, IPv6 Start IP, IPv6 End IP fields.
This commit is contained in:
parent
985168ab4b
commit
efb3287fdc
|
|
@ -634,38 +634,62 @@ var addGuestNetworkDialog = {
|
|||
//IPv4 (begin)
|
||||
ip4gateway: {
|
||||
label: 'label.ipv4.gateway',
|
||||
docID: 'helpGuestNetworkZoneGateway'
|
||||
docID: 'helpGuestNetworkZoneGateway',
|
||||
validation: {
|
||||
ipv4: true
|
||||
}
|
||||
},
|
||||
ip4Netmask: {
|
||||
label: 'label.ipv4.netmask',
|
||||
docID: 'helpGuestNetworkZoneNetmask'
|
||||
docID: 'helpGuestNetworkZoneNetmask',
|
||||
validation: {
|
||||
netmask: true
|
||||
}
|
||||
},
|
||||
startipv4: {
|
||||
label: 'label.ipv4.start.ip',
|
||||
docID: 'helpGuestNetworkZoneStartIP'
|
||||
docID: 'helpGuestNetworkZoneStartIP',
|
||||
validation: {
|
||||
ipv4: true
|
||||
}
|
||||
},
|
||||
endipv4: {
|
||||
label: 'label.ipv4.end.ip',
|
||||
docID: 'helpGuestNetworkZoneEndIP'
|
||||
docID: 'helpGuestNetworkZoneEndIP',
|
||||
validation: {
|
||||
ipv4: true
|
||||
}
|
||||
},
|
||||
//IPv4 (end)
|
||||
|
||||
//IPv6 (begin)
|
||||
ip6gateway: {
|
||||
label: 'label.ipv6.gateway',
|
||||
docID: 'helpGuestNetworkZoneGateway'
|
||||
docID: 'helpGuestNetworkZoneGateway',
|
||||
validation: {
|
||||
ipv6: true
|
||||
}
|
||||
},
|
||||
ip6cidr: {
|
||||
label: 'label.ipv6.CIDR'
|
||||
label: 'label.ipv6.CIDR',
|
||||
validation: {
|
||||
ipv6cidr: true
|
||||
}
|
||||
},
|
||||
startipv6: {
|
||||
label: 'label.ipv6.start.ip',
|
||||
docID: 'helpGuestNetworkZoneStartIP'
|
||||
docID: 'helpGuestNetworkZoneStartIP',
|
||||
validation: {
|
||||
ipv6: true
|
||||
}
|
||||
},
|
||||
endipv6: {
|
||||
label: 'label.ipv6.end.ip',
|
||||
docID: 'helpGuestNetworkZoneEndIP'
|
||||
},
|
||||
docID: 'helpGuestNetworkZoneEndIP',
|
||||
validation: {
|
||||
ipv6: true
|
||||
}
|
||||
},
|
||||
//IPv6 (end)
|
||||
|
||||
networkdomain: {
|
||||
|
|
@ -2224,3 +2248,48 @@ function strOrFunc(arg, args) {
|
|||
return arg(args);
|
||||
return arg;
|
||||
}
|
||||
|
||||
$.validator.addMethod("netmask", function(value, element) {
|
||||
if (this.optional(element) && value.length == 0)
|
||||
return true;
|
||||
|
||||
var valid = [ 255, 254, 252, 248, 240, 224, 192, 128, 0 ];
|
||||
var octets = value.split('.');
|
||||
if (typeof octets == 'undefined' || octets.length != 4) {
|
||||
return false;
|
||||
}
|
||||
var wasAll255 = true;
|
||||
for (index = 0; index < octets.length; index++) {
|
||||
if (octets[index] != Number(octets[index]).toString()) //making sure that "", " ", "00", "0 ","255 ", etc. will not pass
|
||||
return false;
|
||||
wasAll255 = wasAll255 && octets[index] == 255;
|
||||
if ($.inArray(Number(octets[index]), valid) < 0)
|
||||
return false;
|
||||
if (!wasAll255 && index > 0 && Number(octets[index]) != 0 && Number(octets[index - 1]) != 255)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}, "The specified netmask is invalid.");
|
||||
|
||||
$.validator.addMethod("ipv6cidr", 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.ipv6.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 IPv6 CIDR is invalid.");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue