Bug 27796: (QA follow-up) Missing filters
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / password_check.inc
1 [% USE Koha %]
2 <!-- password_check.inc -->
3 <script>
4     var pwd_title = "";
5     var pattern_title = "";
6     var new_password_node_name = "[% new_password | html %]";
7     var category_selector = "[% category_selector | html %]";
8     var STRONG_MSG = _("Password must contain at least %s characters, including UPPERCASE, lowercase and numbers");
9     var WEAK_MSG = _("Password must contain at least %s characters");
10
11     if(category_selector && $('select'+category_selector).length) {
12         jQuery.validator.addMethod("password_strong", function(value, element){
13             var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong');
14             var min_lenght = $('select'+category_selector+' option:selected').data('pwdLength');
15             var regex_text = require_strong?"(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{"+min_lenght+",}":".{"+min_lenght+",}";
16             var pattern_regex = new RegExp(regex_text);
17             return this.optional(element) || value == '****' || pattern_regex.test(value);
18         }, function(unused, element) {
19             var require_strong = $('select'+category_selector+' option:selected').data('pwdStrong');
20             var min_lenght = $('select'+category_selector+' option:selected').data('pwdLength');
21             return (require_strong?STRONG_MSG:WEAK_MSG).format(min_lenght)
22         });
23     } else {
24         [% IF RequireStrongPassword %]
25             pwd_title = STRONG_MSG.format([% minPasswordLength | html %]);
26             pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{[% minPasswordLength | html %],}/;
27         [% ELSIF minPasswordLength %]
28             pwd_title = WEAK_MSG.format([% minPasswordLength | html %]);
29             pattern_regex = /.{[% minPasswordLength | html %],}/;
30         [% END %]
31         jQuery.validator.addMethod("password_strong", function(value, element){
32             return this.optional(element) || value == '****' || pattern_regex.test(value);
33         }, pwd_title);
34     }
35     jQuery.validator.addMethod("password_no_spaces", function(value, element){
36         return ( this.optional(element) || !value.match(/^\s/) && !value.match(/\s$/) );
37     }, _("Password contains leading and/or trailing spaces"));
38     jQuery.validator.addMethod("password_match", function(value, element){
39         var new_password_node = $("input[name='" + new_password_node_name + "']:first");
40         return value == $(new_password_node).val();
41     }, _("Please enter the same password as above"));
42 </script>
43 <!-- / password_check.inc -->