From 7be967f2ed0d2858d5d930c018098a3f29843a30 Mon Sep 17 00:00:00 2001 From: Ere Maijala <ere.maijala@helsinki.fi> Date: Wed, 22 Mar 2017 15:23:43 +0200 Subject: [PATCH] Improved Voyager / MultiBackend ILL behavior (#945) - Fixed Voyager ILL requests by passing on empty array indicate that a patron is logged in but not available for the current catalog. --- module/VuFind/src/VuFind/ILS/Driver/MultiBackend.php | 6 ++++-- module/VuFind/src/VuFind/ILS/Driver/Voyager.php | 2 +- module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/module/VuFind/src/VuFind/ILS/Driver/MultiBackend.php b/module/VuFind/src/VuFind/ILS/Driver/MultiBackend.php index c2bb4ab6d47..0b9d7c02a9b 100644 --- a/module/VuFind/src/VuFind/ILS/Driver/MultiBackend.php +++ b/module/VuFind/src/VuFind/ILS/Driver/MultiBackend.php @@ -215,9 +215,11 @@ class MultiBackend extends AbstractBase implements \Zend\Log\LoggerAwareInterfac $source = $this->getSource($id); $driver = $this->getDriver($source); if ($driver) { - // Don't pass on patron information belonging to another source + // If the patron belongs to another source, just pass on an empty array + // to indicate that the patron has logged in but is not available for the + // current catalog. if ($patron && $this->getSource($patron['cat_username']) !== $source) { - $patron = null; + $patron = []; } $holdings = $driver->getHolding( $this->getLocalId($id), diff --git a/module/VuFind/src/VuFind/ILS/Driver/Voyager.php b/module/VuFind/src/VuFind/ILS/Driver/Voyager.php index f93be7a2581..7abed9a1bc9 100644 --- a/module/VuFind/src/VuFind/ILS/Driver/Voyager.php +++ b/module/VuFind/src/VuFind/ILS/Driver/Voyager.php @@ -1016,7 +1016,7 @@ EOT; * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - protected function processHoldingData($data, $id, $patron = false) + protected function processHoldingData($data, $id, $patron = null) { $holding = []; diff --git a/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php b/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php index 76bd82cca96..bbae414af17 100644 --- a/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php +++ b/module/VuFind/src/VuFind/ILS/Driver/VoyagerRestful.php @@ -477,11 +477,11 @@ class VoyagerRestful extends Voyager implements \VuFindHttp\HttpServiceAwareInte * * @param array $data Item Data * @param string $id The BIB record id - * @param mixed $patron Patron Data or boolean false + * @param array $patron Patron Data * * @return array Keyed data */ - protected function processHoldingData($data, $id, $patron = false) + protected function processHoldingData($data, $id, $patron = null) { $holding = parent::processHoldingData($data, $id, $patron); @@ -551,7 +551,8 @@ class VoyagerRestful extends Voyager implements \VuFindHttp\HttpServiceAwareInte $ILLRequest = ''; $addILLRequestLink = false; - if ($patron && $isILLRequestAllowed) { + // Check only that a patron has logged in + if (null !== $patron && $isILLRequestAllowed) { $ILLRequest = 'auto'; $addILLRequestLink = 'check'; } -- GitLab