diff options
| author | Arne Schröder <schroeder@data-quest.de> | 2026-03-04 11:54:26 +0100 |
|---|---|---|
| committer | Arne Schröder <schroeder@data-quest.de> | 2026-03-04 11:54:26 +0100 |
| commit | c67a75cfab03334269268bc3e1136b4c80fc12e1 (patch) | |
| tree | 38d330b45ef8db77e51abec55ff07070802a31b0 | |
| parent | 0da0929e00bfb1bd12f7eb08df8c0ceb44fcecde (diff) | |
fix user data handling on soap fault, re #5596
| -rw-r--r-- | lib/ilias_interface/ConnectedIlias.php | 7 | ||||
| -rw-r--r-- | lib/ilias_interface/StudipSoapClient.php | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/ilias_interface/ConnectedIlias.php b/lib/ilias_interface/ConnectedIlias.php index adec457..8df5c7d 100644 --- a/lib/ilias_interface/ConnectedIlias.php +++ b/lib/ilias_interface/ConnectedIlias.php @@ -1518,7 +1518,7 @@ class ConnectedIlias if ($this->user->isConnected()) { $ilias_user_id = $this->soap_client->lookupUser($this->user->getUsername()); $ilias_user_exists = $this->soap_client->getUser($this->user->getId()); - if (!$this->soap_client->getError() && empty($ilias_user_id) && ! is_array($ilias_user_exists)) { + if (empty($this->soap_client->error) && empty($ilias_user_id) && ! is_array($ilias_user_exists)) { $this->soap_client->setCachingStatus(false); $this->soap_client->clearCache(); $user_id = $this->soap_client->lookupUser($this->user->getUsername()); @@ -1529,6 +1529,9 @@ class ConnectedIlias $this->user->unsetConnection(true); return false; } + } else if (!empty($this->soap_client->error) && $GLOBALS['user']->perms !== 'root') { + $this->error[] = sprintf(_('User-Daten aus dem System %s konnten nicht abgerufen werden.'), $this->ilias_config['name']); + $this->ilias_config['active'] = false; } } return true; @@ -1579,7 +1582,7 @@ class ConnectedIlias */ public function checkUserCoursePermissions($ilias_course_id = "") { - if (($ilias_course_id == "") || ($this->user->getId() == "")) { + if (($ilias_course_id == "") || ($this->user->getId() == "") || !empty($this->error)) { return false; } diff --git a/lib/ilias_interface/StudipSoapClient.php b/lib/ilias_interface/StudipSoapClient.php index a92d1e5..c405b9f 100644 --- a/lib/ilias_interface/StudipSoapClient.php +++ b/lib/ilias_interface/StudipSoapClient.php @@ -32,7 +32,7 @@ class StudipSoapClient try { $result = $this->soap_client->__soapCall($method, $params); } catch (SoapFault $fault) { - $this->faultstring = $fault->faultstring; + $this->faultstring = $method . ": " . $fault->faultstring; if (!in_array(mb_strtolower($this->faultstring), ["session not valid","session invalid", "session idled"])) { unset($params['password']); $this->error .= sprintf(_("SOAP-Fehler, Funktion \"%s\":"), $method) . " " . $fault->faultstring . " (" . $fault->faultcode . ")".print_r($params,1); |
