openstackid/public/assets/js/jquery.validate.additional.custom.methods.js
Sebastian Marcet b7eb03974e Resource server ban error
Fix to allow to config several ips per resource server (IPV4/V6)

Change-Id: I73cc684009774e7dcc187ad5de425c9a1547ea76
2016-02-23 16:02:07 -03:00

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);
}
}
});