diff --git a/languages/en.ini b/languages/en.ini index bb007928d00f5c44fec9ccf1bb5327311662cd10..ddc7c1e431ec62faba77440789d5418c2c06f2a4 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 a32ecf9ee5d1f5ac173e70a14b7c84ea1010700c..52a2b54e06813cd2bf2769af80b0e30f86f4151d 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 c36d1c91d7a31e7085f02fc446f973ec8729983b..0a4786eb5310ee4e7c2a5b49a8e9e17c1cda9674 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 84806a944ec145557635c8a4c7a75308bf38a73b..6ab787492efab4e30fe6b1d32954dc0bc0db7f91 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); }