From d138dac86f1a4b3992b413d709de1aa91df174c5 Mon Sep 17 00:00:00 2001
From: Dorian Merz <merz@ub.uni-leipzig.de>
Date: Thu, 22 Apr 2021 10:58:56 +0200
Subject: [PATCH] refs #19733 [fid] bugfix and refactoring in
 \fid\Controller\MyResearchController::databasesAction

* fix problems with unset homeLibrary
---
 module/fid/src/Controller/MyResearchController.php | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/module/fid/src/Controller/MyResearchController.php b/module/fid/src/Controller/MyResearchController.php
index e0e032ed4b2..71002c9c96a 100644
--- a/module/fid/src/Controller/MyResearchController.php
+++ b/module/fid/src/Controller/MyResearchController.php
@@ -105,7 +105,9 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
 
                 try {
                     $library = $this->getHomeLibrary($patron);
-                    $view->homeLibrary = $library->getDbis();
+                    if (!is_null($library)) {
+                        $view->homeLibrary = $library->getDbis();
+                    }
                     $view->map_bibid_to_dbis = false;
                 } catch (ClientException $exception) {
                     // TODO: Implement logging (in database?)
@@ -159,14 +161,14 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
     protected function getHomeLibrary($patron): ?Library
     {
         if (is_a($patron['user'], 'fid\Service\DataTransferObject\User')
-            && $patron['user']->getHomeLibrary())
+            && $homeLibrary = $patron['user']->getHomeLibrary())
         {
-            if (isset($patron['libs'][$patron['user']->getHomeLibrary()])) {
-                return $patron['libs'][$patron['user']->getHomeLibrary()];
+            if (isset($patron['libs'][$homeLibrary])) {
+                return $patron['libs'][$homeLibrary];
             }
 
             /* no home library found in patron object? => fetch library from api directly */
-            return $this->fidClient->requestLibraryById($patron['user']->getHomeLibrary());
+            return $this->fidClient->requestLibraryById($homeLibrary);
         }
 
         return null;
-- 
GitLab