@@ -, +, @@ --- .../prog/en/includes/password_check.inc | 12 +++++++++++- .../bootstrap/en/includes/password_check.inc | 12 +++++++++++- members/memberentry.pl | 3 +++ 3 files changed, 25 insertions(+), 2 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/password_check.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/password_check.inc @@ -5,12 +5,22 @@ var pwd_title = ""; var pattern_title = ""; var new_password_node_name = "[% new_password | html %]"; + var password_policy = "[% password_policy | html %]"; [% IF Koha.Preference('RequireStrongPassword') %] pwd_title = _("Password must contain at least %s characters, including UPPERCASE, lowercase and numbers").format([% minPasswordLength | html %]); pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{[% minPasswordLength | html %],}/; - [% ELSIF minPasswordLength %] + [% ELSIF minPasswordLength && !password_policy %] pwd_title = _("Password must contain at least %s characters").format([% minPasswordLength | html %]); pattern_regex = /.{[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'simplenumeric' %] + pwd_title = _("Password can only contain digits 0-9 and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)([0-9]){[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'alphanumeric' %] + pwd_title = _("Password must contain both numbers and non-special characters and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)(?=.*[a-zA-Z])([a-zA-Z0-9]){[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'complex' %] + pwd_title = _("Password must contain numbers, lower and uppercase characters and special characters and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\|\[\]\{\}!@#\$%\^&\*\(\)_\-\+\?])([a-zA-Z0-9\|\[\]\{\}!@#\$%\^&\*\(\)_\-\+\?]){[% minPasswordLength | html %],}/; [% END %] jQuery.validator.addMethod("password_strong", function(value, element){ return this.optional(element) || value == '****' || pattern_regex.test(value); --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/password_check.inc +++ a/koha-tmpl/opac-tmpl/bootstrap/en/includes/password_check.inc @@ -4,12 +4,22 @@ var pwd_title = ""; var pattern_title = ""; var new_password_node_name = "[% new_password | html %]"; + var password_policy = "[% password_policy | html %]"; [% IF Koha.Preference('RequireStrongPassword') %] pwd_title = _("Password must contain at least %s characters, including UPPERCASE, lowercase and numbers").format([% minPasswordLength | html %]); pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{[% minPasswordLength | html %],}/; - [% ELSIF minPasswordLength %] + [% ELSIF minPasswordLength && !password_policy %] pwd_title = _("Password must contain at least %s characters").format([% minPasswordLength | html %]); pattern_regex = /.{[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'simplenumeric' %] + pwd_title = _("Password can only contain digits 0-9 and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)([0-9]){[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'alphanumeric' %] + pwd_title = _("Password must contain both numbers and non-special characters and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)(?=.*[a-zA-Z])([a-zA-Z0-9]){[% minPasswordLength | html %],}/; + [% ELSIF password_policy == 'complex' %] + pwd_title = _("Password must contain numbers, lower and uppercase characters and special characters and must be at least %s characters long").format([% minPasswordLength | html %]); + pattern_regex = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\|\[\]\{\}!@#\$%\^&\*\(\)_\-\+\?])([a-zA-Z0-9\|\[\]\{\}!@#\$%\^&\*\(\)_\-\+\?]){[% minPasswordLength | html %],}/; [% END %] jQuery.validator.addMethod("password_strong", function(value, element){ return this.optional(element) || pattern_regex.test(value); --- a/members/memberentry.pl +++ a/members/memberentry.pl @@ -184,6 +184,9 @@ unless ($category_type or !($categorycode)){ } $category_type="A" unless $category_type; # FIXME we should display a error message instead of a 500 error ! +my $passwordpolicy = $patron->category->passwordpolicy; +$template->param(password_policy => $passwordpolicy); + my $minpasslength = Koha::AuthUtils::min_password_length($categorycode); $template->param("minPasswordLength" => $minpasslength); --