aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schröder <schroeder@data-quest.de>2026-03-04 11:54:26 +0100
committerArne Schröder <schroeder@data-quest.de>2026-03-04 11:54:26 +0100
commitc67a75cfab03334269268bc3e1136b4c80fc12e1 (patch)
tree38d330b45ef8db77e51abec55ff07070802a31b0
parent0da0929e00bfb1bd12f7eb08df8c0ceb44fcecde (diff)
fix user data handling on soap fault, re #5596
-rw-r--r--lib/ilias_interface/ConnectedIlias.php7
-rw-r--r--lib/ilias_interface/StudipSoapClient.php2
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);