Skip to content

Commit aac3074

Browse files
authored
Various fixes
More descriptive variable names. Regex fix for special chars. Validator name changed. Localization added.
1 parent 7f0d968 commit aac3074

File tree

1 file changed

+35
-36
lines changed

1 file changed

+35
-36
lines changed

src/modules/security.js

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -523,69 +523,68 @@
523523
*
524524
*/
525525
$.formUtils.addValidator({
526-
name : 'content',
527-
validatorFunction : function(val, $el) {
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-
result_uc = false,
538-
result_lc = false,
539-
result_sc = false,
540-
result_num = false,
526+
name : 'complexity',
527+
validatorFunction : function(val, $el, conf, lang) {
528+
var numRequiredUppercaseChars = $el.valAttr('require-uc-letter') || '0',
529+
numRequiredLowercaseChars = $el.valAttr('require-lc-letter') || '0',
530+
numRequiredSpecialChars = $el.valAttr('require-special-char') || '0',
531+
numRequiredNumericChars = $el.valAttr('require-numeral') || '0',
532+
patternUpperCaseChars = '^(?=(?:.*[A-Z]){'+numRequiredUppercaseChars+',}).+',
533+
patternLowerCaseChars = '^(?=(?:.*[a-z]){'+numRequiredLowercaseChars+',}).+',
534+
patternSpecialChars = '^(?=(?:.*(_|[!"#$%&\'()*+\\\\,-./:;<=>?@[\\]^_`{|}~])){'+numRequiredSpecialChars+',}).+',
535+
patternNumericChars = '^(?=(?:.*\\d){'+numRequiredNumericChars+',}).+',
536+
resultRegExpRequiredUppercaseChars = false,
537+
resultRegExpRequiredLowercaseChars = false,
538+
resultRegExpRequiredSpecialChars = false,
539+
resultRegExpRequiredNumericChars = false,
541540
error = false;
542541

543-
if (require_uc !== '0'){
544-
result_uc = new RegExp(pattern_uc).test(val);
542+
if (numRequiredUppercaseChars !== '0'){
543+
resultRegExpRequiredUppercaseChars = new RegExp(patternUpperCaseChars).test(val);
545544
}
546-
if (require_lc !== '0'){
547-
result_lc = new RegExp(pattern_lc).test(val);
545+
if (numRequiredLowercaseChars !== '0'){
546+
resultRegExpRequiredLowercaseChars = new RegExp(patternLowerCaseChars).test(val);
548547
}
549-
if (require_sc !== '0'){
550-
result_sc = new RegExp(pattern_sc).test(val);
548+
if (numRequiredSpecialChars !== '0'){
549+
resultRegExpRequiredSpecialChars = new RegExp(patternSpecialChars).test(val);
551550
}
552-
if (require_num !== '0'){
553-
result_num = new RegExp(pattern_num).test(val);
551+
if (numRequiredNumericChars !== '0'){
552+
resultRegExpRequiredNumericChars = new RegExp(patternNumericChars).test(val);
554553
}
555554

556-
if (!result_uc){
555+
if (!resultRegExpRequiredUppercaseChars){
557556
error = true;
558-
message_error = message_error + require_uc + ' uppercase letter(s)';
557+
message_error = lang.passwordComplexityStart + numRequiredUppercaseChars + lang.passwordComplexityUppercaseInfo;
559558
}
560-
if (!result_lc){
559+
if (!resultRegExpRequiredLowercaseChars){
561560
if (error){
562-
message_error = message_error + ', ' + require_lc + ' lowercase letter(s)';
561+
message_error = message_error + lang.passwordComplexitySeparator + numRequiredLowercaseChars + lang.passwordComplexityLowercaseInfo;
563562
}
564563
else{
565564
error = true;
566-
message_error = message_error + require_lc + ' lowercase letter(s)';
565+
message_error = lang.passwordComplexityStart + numRequiredLowercaseChars + lang.passwordComplexityLowercaseInfo;
567566
}
568567
}
569-
if (!result_sc){
568+
if (!resultRegExpRequiredSpecialChars){
570569
if (error){
571-
message_error = message_error + ', ' + require_sc + ' special character(s)';
570+
message_error = message_error + lang.passwordComplexitySeparator + numRequiredSpecialChars + lang.passwordComplexitySpecialCharsInfo;
572571
}
573572
else{
574573
error = true;
575-
message_error = message_error + require_sc + ' special character(s)';
574+
message_error = lang.passwordComplexityStart + numRequiredSpecialChars + lang.passwordComplexitySpecialCharsInfo;
576575
}
577576
}
578-
if (!result_num){
577+
if (!resultRegExpRequiredNumericChars){
579578
if (error){
580-
message_error = message_error + ', ' + require_num + ' numeric character(s)';
579+
message_error = message_error + lang.passwordComplexitySeparator + numRequiredNumericChars + lang.passwordComplexityNumericCharsInfo;
581580
}
582581
else{
583-
message_error = message_error + require_num + ' numeric character(s)';
582+
message_error = lang.passwordComplexityStart + numRequiredNumericChars + lang.passwordComplexityNumericCharsInfo;
584583
}
585584
}
586585

587-
this.errorMessage = message_error + '.';
588-
if(result_uc && result_lc && result_sc && result_num){
586+
this.errorMessage = message_error + lang.passwordComplexityEnd;
587+
if(resultRegExpRequiredUppercaseChars && resultRegExpRequiredLowercaseChars && resultRegExpRequiredSpecialChars && resultRegExpRequiredNumericChars){
589588
return true;
590589
}
591590
return false;

0 commit comments

Comments
 (0)