From 16ed5c01099be2845e407219dcf99173f15a41f4 Mon Sep 17 00:00:00 2001 From: Ere Maijala <ere.maijala@helsinki.fi> Date: Thu, 11 Jun 2015 10:39:17 +0300 Subject: [PATCH] Added better error message when a new PIN code contains characters Voyager doesn't allow. --- languages/en.ini | 1 + languages/fi.ini | 1 + languages/sv.ini | 3 ++- .../src/VuFind/ILS/Driver/VoyagerRestful.php | 16 ++++++++++------ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/languages/en.ini b/languages/en.ini index bb007928d00..ddc7c1e431e 100644 --- a/languages/en.ini +++ b/languages/en.ini @@ -675,6 +675,7 @@ Page not found. = "Page not found." Password = "Password" Password Again = "Password Again" Password cannot be blank = "Password cannot be blank" +password_error_invalid = "New password is invalid (e.g. contains invalid characters)" password_error_not_unique = "Password was not changed" password_maximum_length = "Maximum password length is %%maxlength%% characters" password_minimum_length = "Minimum password length is %%minlength%% characters" diff --git a/languages/fi.ini b/languages/fi.ini index a32ecf9ee5d..52a2b54e068 100644 --- a/languages/fi.ini +++ b/languages/fi.ini @@ -665,6 +665,7 @@ Page not found. = "Sivua ei löytynyt." Password = "Salasana / PIN*" Password Again = "Salasana uudelleen" Password cannot be blank = "Salasana ei voi olla tyhjä" +password_error_invalid = "Uusi salasana on virheellinen (esim. sisältää kiellettyjä merkkejä)" password_error_not_unique = "Salasanaa ei muutettu" password_maximum_length = "Salasanan enimmäispituus on %%maxlength%% merkkiä" password_minimum_length = "Salasanan vähimmäispituus on %%minlength%% merkkiä" diff --git a/languages/sv.ini b/languages/sv.ini index c36d1c91d7a..0a4786eb531 100644 --- a/languages/sv.ini +++ b/languages/sv.ini @@ -664,7 +664,8 @@ Other Sources = "Andra källor" Page not found. = "Sidan hittades inte." Password = "Lösenord / PIN *" Password Again = "Lösenord igen" -Password cannot be blank = "Lösenordet kan inte lämnas tom" +Password cannot be blank = "Lösenordet kan inte lämnas tomt" +password_error_invalid = "Nytt lösenord är ogiltigt (t.ex. innehåller ogiltiga tecken)" password_error_not_unique = "Lösenordet inte ändrat" password_maximum_length = "Högsta längd på lösenord är %%maxlength%% tecken" password_minimum_length = "Minsta längd på lösenord är %%minlength%% tecken" diff --git a/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php b/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php index 84806a944ec..6ab787492ef 100644 --- a/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php +++ b/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php @@ -3163,6 +3163,11 @@ EOT; $this->sanitizePIN($details['newPassword']), ENT_COMPAT, 'UTF-8' ) ); + if ($newPIN === '') { + return [ + 'success' => false, 'status' => 'password_error_invalid' + ]; + } $barcode = htmlspecialchars($patron['cat_username'], ENT_COMPAT, 'UTF-8'); $xml = <<<EOT @@ -3206,12 +3211,11 @@ EOT; ]; } if ($code == $exceptionNamespace . 'ValidateLengthException') { - // This issue should not be encountered if the settings are correct. - // Log an error and let through for an exception - $this->error( - 'ValidateLengthException encountered when trying to' - . ' change patron PIN. Verify PIN length settings.' - ); + // This error may happen even with correct settings if the new PIN + // contains invalid characters. + return [ + 'success' => false, 'status' => 'password_error_invalid' + ]; } throw new ILSException((string)$error); } -- GitLab