Bug 23473: (follow-up) Catch and show password exceptions

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Nick Clemens 2019-11-05 12:58:45 +00:00 committed by Martin Renvoize
parent 481bc59de5
commit 8c7ae857a2
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
2 changed files with 46 additions and 1 deletions

View File

@ -22,6 +22,7 @@ use namespace::clean;
use Carp;
use Text::CSV;
use Encode qw( decode_utf8 );
use Try::Tiny;
use C4::Members;
@ -303,7 +304,26 @@ sub import_patrons {
}
}
if ($overwrite_passwords){
$patron->set_password({ password => $borrower{password} });
try {
$patron->set_password({ password => $borrower{password} });
}
catch {
if ( $_->isa('Koha::Exceptions::Password::TooShort') ) {
push @errors, { passwd_too_short => 1, borrowernumber => $borrowernumber, length => $_->{length}, min_length => $_->{min_length} };
}
elsif ( $_->isa('Koha::Exceptions::Password::WhitespaceCharacters') ) {
push @errors, { passwd_whitespace => 1, borrowernumber => $borrowernumber } ;
}
elsif ( $_->isa('Koha::Exceptions::Password::TooWeak') ) {
push @errors, { passwd_too_weak => 1, borrowernumber => $borrowernumber } ;
}
elsif ( $_->isa('Koha::Exceptions::Password::Plugin') ) {
push @errors, { passwd_plugin_err => 1, borrowernumber => $borrowernumber } ;
}
else {
push @errors, { passwd_unknown_err => 1, borrowernumber => $borrowernumber } ;
}
}
}
if ($extended) {
if ($ext_preserve) {

View File

@ -115,6 +115,31 @@
Userid [% e.userid | html %] is already used by another patron.
</li>
[% END %]
[% IF e.passwd_too_short %]
<li class="line_error">
Password is too short for patron with borrowernumber [% e.borrowernumber | html %]. Minimum length is [% e.min_length %], length is [% e.length %]
</li>
[% END %]
[% IF e.passwd_whitespace %]
<li class="line_error">
Password contains whitespace for patron with borrowernumber [% e.borrowernumber | html %].
</li>
[% END %]
[% IF e.passwd_too_weak %]
<li class="line_error">
Password is too weak for patron with borrowernumber [% e.borrowernumber | html %].
</li>
[% END %]
[% IF e.passwd_plugin_err %]
<li class="line_error">
Password plugin error for patron with borrowernumber [% e.borrowernumber | html %].
</li>
[% END %]
[% IF e.passwd_unknown_err %]
<li class="line_error">
Password error for patron with borrowernumber [% e.borrowernumber | html %].
</li>
[% END %]
[% END %]
</ul>
</div>