Lines 4-36
Link Here
|
4 |
var pattern_title = ""; |
4 |
var pattern_title = ""; |
5 |
var new_password_node_name = "[% new_password | html %]"; |
5 |
var new_password_node_name = "[% new_password | html %]"; |
6 |
var category_selector = "[% category_selector | html %]"; |
6 |
var category_selector = "[% category_selector | html %]"; |
|
|
7 |
var password_policy = "[% password_policy | html %]"; |
7 |
var STRONG_MSG = _("Password must contain at least %s characters, including UPPERCASE, lowercase and numbers"); |
8 |
var STRONG_MSG = _("Password must contain at least %s characters, including UPPERCASE, lowercase and numbers"); |
8 |
var WEAK_MSG = _("Password must contain at least %s characters"); |
9 |
var WEAK_MSG = _("Password must contain at least %s characters"); |
|
|
10 |
var COMPLEX_MSG = _("Password must contain numbers, lower and uppercase characters and special characters and must be at least %s characters long."); |
11 |
var ALPHA_MSG = _("Password must contain both numbers and non-special characters and must be at least %s characters long."); |
12 |
var SIMPLE_MSG = _("Password can only contain digits 0-9 and must be at least %s characters long."); |
9 |
|
13 |
|
10 |
if(category_selector && $('select'+category_selector).length) { |
14 |
if(category_selector && $('select'+category_selector).length) { |
11 |
jQuery.validator.addMethod("password_strong", function(value, element){ |
15 |
jQuery.validator.addMethod("password_strong", function(value, element){ |
12 |
var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong'); |
16 |
var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong'); |
13 |
var min_lenght = $('select'+category_selector+' option:selected').data('pwdLength'); |
17 |
var min_length = $('select'+category_selector+' option:selected').data('pwdLength'); |
14 |
var regex_text = require_strong?"(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{"+min_lenght+",}":".{"+min_lenght+",}"; |
18 |
var passwordpolicy = $('select'+category_selector+' option:selected').data('pwdPolicy'); |
|
|
19 |
var regex_text = ''; |
20 |
if(passwordpolicy){ |
21 |
if(passwordpolicy == 'complex'){ |
22 |
regex_text = "(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&*(){}[\\]<>?/|\-]).{"+min_length+",}"; |
23 |
}else if(passwordpolicy == 'alphanumeric'){ |
24 |
regex_text = "(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{"+min_length+",}"; |
25 |
}else{ |
26 |
regex_text = "(?=.*\\d)(?=.*[0-9]).{"+min_length+",}"; |
27 |
} |
28 |
}else{ |
29 |
regex_text = require_strong?"(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{"+min_length+",}":".{"+min_length+",}"; |
30 |
} |
15 |
var pattern_regex = new RegExp(regex_text); |
31 |
var pattern_regex = new RegExp(regex_text); |
16 |
return this.optional(element) || pattern_regex.test(value); |
32 |
return this.optional(element) || pattern_regex.test(value); |
17 |
}, function(unused, element) { |
33 |
}, function(unused, element) { |
18 |
var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong'); |
34 |
var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong'); |
19 |
var min_lenght = $('select'+category_selector+' option:selected').data('pwdLength'); |
35 |
var min_length = $('select'+category_selector+' option:selected').data('pwdLength'); |
20 |
return (require_strong?STRONG_MSG:WEAK_MSG).format(min_lenght) |
36 |
var passwordpolicy = $('select'+category_selector+' option:selected').data('pwdPolicy'); |
|
|
37 |
if(passwordpolicy){ |
38 |
if(passwordpolicy == 'complex'){ |
39 |
return (COMPLEX_MSG).format(min_length); |
40 |
}else if(passwordpolicy == 'alphanumeric'){ |
41 |
return (ALPHA_MSG).format(min_length); |
42 |
}else{ |
43 |
return (SIMPLE_MSG).format(min_length); |
44 |
} |
45 |
}else{ |
46 |
return (require_strong?STRONG_MSG:WEAK_MSG).format(min_length) |
47 |
} |
21 |
}); |
48 |
}); |
22 |
} else { |
49 |
} else { |
23 |
[% IF RequireStrongPassword %] |
50 |
[% IF RequireStrongPassword %] |
24 |
pwd_title = STRONG_MSG.format([% minPasswordLength | html %]); |
51 |
pwd_title = STRONG_MSG.format([% minPasswordLength | html %]); |
25 |
pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{[% minPasswordLength | html %],}/; |
52 |
pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{[% minPasswordLength | html %],}/; |
26 |
[% ELSIF minPasswordLength %] |
53 |
[% ELSIF minPasswordLength && !password_policy %] |
27 |
pwd_title = WEAK_MSG.format([% minPasswordLength | html %]); |
54 |
pwd_title = WEAK_MSG.format([% minPasswordLength | html %]); |
28 |
pattern_regex = /.{[% minPasswordLength | html %],}/; |
55 |
pattern_regex = /.{[% minPasswordLength | html %],}/; |
|
|
56 |
[% ELSIF password_policy == 'simplenumeric' %] |
57 |
pwd_title = SIMPLE_MSG.format([% minPasswordLength | html %]); |
58 |
pattern_regex = /(?=.*\d)([0-9]){[% minPasswordLength | html %],}/; |
59 |
[% ELSIF password_policy == 'alphanumeric' %] |
60 |
pwd_title = ALPHA_MSG.format([% minPasswordLength | html %]);; |
61 |
pattern_regex = /(?=.*\d)(?=.*[a-zA-Z])([a-zA-Z0-9]){[% minPasswordLength | html %],}/; |
62 |
[% ELSIF password_policy == 'complex' %] |
63 |
pwd_title = COMPLEX_MSG.format([% minPasswordLength | html %]); |
64 |
pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&*(){}[\]<>?/|\-])([a-zA-Z0-9!@#$%\^&*(){}[\]<>?/|\-]){[% minPasswordLength | html %],}/; |
29 |
[% END %] |
65 |
[% END %] |
30 |
jQuery.validator.addMethod("password_strong", function(value, element){ |
66 |
jQuery.validator.addMethod("password_strong", function(value, element){ |
31 |
return this.optional(element) || value == '****' || pattern_regex.test(value); |
67 |
return this.optional(element) || value == '****' || pattern_regex.test(value); |
32 |
}, pwd_title); |
68 |
}, pwd_title); |
33 |
} |
69 |
} |
|
|
70 |
|
34 |
jQuery.validator.addMethod("password_no_spaces", function(value, element){ |
71 |
jQuery.validator.addMethod("password_no_spaces", function(value, element){ |
35 |
return ( this.optional(element) || !value.match(/^\s/) && !value.match(/\s$/) ); |
72 |
return ( this.optional(element) || !value.match(/^\s/) && !value.match(/\s$/) ); |
36 |
}, _("Password contains leading and/or trailing spaces")); |
73 |
}, _("Password contains leading and/or trailing spaces")); |