Skip to content

Commit ef79a38

Browse files
authored
Added 'content' validator to security
1 parent 730ed0a commit ef79a38

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

src/modules/security.js

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,81 @@
514514
errorMessageKey: 'requiredFields'
515515
});
516516

517+
/*
518+
* Check password content depending on following parameters:
519+
* data-validation-require-uc-letter,
520+
* data-validation-require-lc-letter,
521+
* data-validation-require-special-char,
522+
* data-validation-require-numeral
523+
*
524+
*/
525+
$.formUtils.addValidator({
526+
name : 'content',
527+
validatorFunction : function(val, $el, config, language) {
528+
var require_uc = $el.valAttr('require-uc-letter') || '0',
529+
require_lc = $el.valAttr('require-lc-letter') || '0',
530+
require_sc = $el.valAttr('require-special-char') || '0',
531+
require_num = $el.valAttr('require-numeral') || '0',
532+
pattern_uc = '^(?=(?:.*[A-Z]){'+require_uc+',}).+',
533+
pattern_lc = '^(?=(?:.*[a-z]){'+require_lc+',}).+',
534+
pattern_sc = '^(?=(?:.*(_|[-+_!@#$%^&*?])){'+require_sc+',}).+',
535+
pattern_num = '^(?=(?:.*\\d){'+require_num+',}).+',
536+
message_error = 'Password must contain at least ',
537+
error = false;
538+
539+
if (require_uc !== '0'){
540+
result_uc = new RegExp(pattern_uc).test(val);
541+
}
542+
if (require_lc !== '0'){
543+
result_lc = new RegExp(pattern_lc).test(val);
544+
}
545+
if (require_sc !== '0'){
546+
result_sc = new RegExp(pattern_sc).test(val);
547+
}
548+
if (require_num !== '0'){
549+
result_num = new RegExp(pattern_num).test(val);
550+
}
551+
552+
if (!result_uc){
553+
error = true;
554+
message_error = message_error + require_uc + ' uppercase letter(s)';
555+
}
556+
if (!result_lc){
557+
if (error){
558+
message_error = message_error + ', ' + require_lc + ' lowercase letter(s)';
559+
}
560+
else{
561+
error = true;
562+
message_error = message_error + require_lc + ' lowercase letter(s)';
563+
}
564+
}
565+
if (!result_sc){
566+
if (error){
567+
message_error = message_error + ', ' + require_sc + ' special character(s)';
568+
}
569+
else{
570+
error = true;
571+
message_error = message_error + require_sc + ' special character(s)';
572+
}
573+
}
574+
if (!result_num){
575+
if (error){
576+
message_error = message_error + ', ' + require_num + ' numeric character(s)';
577+
}
578+
else{
579+
message_error = message_error + require_num + ' numeric character(s)';
580+
}
581+
}
582+
583+
this.errorMessage = message_error + '.';
584+
if(result_uc && result_lc && result_sc && result_num){
585+
return true;
586+
}
587+
return false;
588+
},
589+
errorMessage : '',
590+
errorMessageKey: ''
591+
});
517592
/*
518593
* Google reCaptcha 2
519594
*/

0 commit comments

Comments
 (0)