
Fix to allow to config several ips per resource server (IPV4/V6) Change-Id: I73cc684009774e7dcc187ad5de425c9a1547ea76
108 lines
5.0 KiB
JavaScript
108 lines
5.0 KiB
JavaScript
|
|
var regex_ipv4 = /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i;
|
|
|
|
var regex_ipv6 = /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i;
|
|
|
|
jQuery.validator.addMethod("ipV4", function(value, element) {
|
|
return this.optional(element) || regex_ipv4.test(value);
|
|
}, "Please enter a valid IPV4 address");
|
|
|
|
jQuery.validator.addMethod("ipv4V6Set", function(value, element) {
|
|
var ips = value.split(',');
|
|
for(var ip of ips)
|
|
{
|
|
var valid = regex_ipv4.test(ip);
|
|
if(!valid)
|
|
valid = regex_ipv6.test(ip);
|
|
if(!valid) return false;
|
|
}
|
|
return true
|
|
}, "Please enter a valid IP (V4/V6) address");
|
|
|
|
jQuery.validator.addMethod("ssl_uri", function(value, element) {
|
|
var regex = /^https:\/\/([\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*$/ig;
|
|
return this.optional(element) || regex.test(value);
|
|
}, "Uri must under https schema.");
|
|
|
|
|
|
jQuery.validator.addMethod("scopename", function(value, element) {
|
|
var regex = /^[a-zA-Z0-9\-\.\,\:\_\/]+$/ig;
|
|
return this.optional(element) || regex.test(value);
|
|
}, "Please enter a valid scope name.");
|
|
|
|
jQuery.validator.addMethod("free_text", function(value, element) {
|
|
return this.optional(element) || /^[a-zA-Z0-9\-_.,()'"\s\:\/]+$/i.test(value);
|
|
}, "Letters or punctuation only please");
|
|
|
|
jQuery.validator.addMethod("endpointroute", function(value, element) {
|
|
return this.optional(element) || /^\/([\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,{}]*$/ig.test(value);
|
|
}, "Please enter a valid endpoint route");
|
|
|
|
jQuery.validator.addMethod("pem_public_key", function(value, element, options) {
|
|
if(!options) return true;
|
|
var res1 = value.indexOf('-----BEGIN PUBLIC KEY-----');
|
|
var res2 = value.indexOf('-----BEGIN RSA PUBLIC KEY-----');
|
|
var res3 = value.indexOf('-----END PUBLIC KEY-----');
|
|
var res4 = value.indexOf('-----END RSA PUBLIC KEY-----');
|
|
var pck1 = (res1 != -1 && res3 != -1);
|
|
var pck8 = (res2 != -1 && res4 != -1);
|
|
return pck1 || pck8;
|
|
}, "Please enter a valid PEM Public Key format(PCK#8/PCK#1)");
|
|
|
|
jQuery.validator.addMethod("pem_private_key", function(value, element, options) {
|
|
if(!options) return true;
|
|
var res1 = value.indexOf('-----BEGIN PRIVATE KEY-----');
|
|
var res2 = value.indexOf('-----BEGIN RSA PRIVATE KEY-----');
|
|
var res3 = value.indexOf('-----END PRIVATE KEY-----');
|
|
var res4 = value.indexOf('-----END RSA PRIVATE KEY-----');
|
|
var pck1 = (res1 != -1 && res3 != -1);
|
|
var pck8 = (res2 != -1 && res4 != -1);
|
|
return pck1 || pck8;
|
|
}, "Please enter a valid PEM Private Key format(PCK#8/PCK#1)");
|
|
|
|
jQuery.validator.addMethod("private_key_password_required", function(value, element, options) {
|
|
var private_key_pem = $(options.pem_content_id).val();
|
|
return !(private_key_pem.indexOf('ENCRYPTED') != -1 && value == '');
|
|
}, "Please enter a password for Private Key (PCK#8/PCK#1)");
|
|
|
|
$.validator.addMethod("dateUS", function (value, element,options) {
|
|
//mm/dd/yyyy
|
|
var check = false,
|
|
regex = /^\d{1,2}\/\d{1,2}\/\d{4}$/,
|
|
adata, gg, mm, aaaa, xdata;
|
|
if ( regex.test(value)) {
|
|
adata = value.split("/");
|
|
mm = parseInt(adata[0], 10);
|
|
gg = parseInt(adata[1], 10);
|
|
aaaa = parseInt(adata[2], 10);
|
|
xdata = new Date(Date.UTC(aaaa, mm - 1, gg, 12, 0, 0, 0));
|
|
if ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth () === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) {
|
|
check = true;
|
|
} else {
|
|
check = false;
|
|
}
|
|
} else {
|
|
check = false;
|
|
}
|
|
return this.optional(element) || check;
|
|
}, "Please enter a valid date.");
|
|
|
|
// override jquery validate plugin defaults
|
|
$.validator.setDefaults({
|
|
ignore: [],
|
|
highlight: function(element) {
|
|
$(element).closest('.form-group').addClass('has-error');
|
|
},
|
|
unhighlight: function(element) {
|
|
$(element).closest('.form-group').removeClass('has-error');
|
|
},
|
|
errorElement: 'span',
|
|
errorClass: 'help-block',
|
|
errorPlacement: function(error, element) {
|
|
if(element.parent('.input-group').length) {
|
|
error.insertAfter(element.parent());
|
|
} else {
|
|
error.insertAfter(element);
|
|
}
|
|
}
|
|
}); |