aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Noack <noack@data-quest.de>2025-01-20 12:31:17 +0000
committerAndré Noack <noack@data-quest.de>2025-01-20 12:31:17 +0000
commit7413c31fcbcf5f6bc7f10f2458a562656706f31c (patch)
tree3d24d1453239baff0fbfb8bb98c2797da2c6874d
parent3484ee485a94c4cbf734367dc203ee14ba50bb81 (diff)
Resolve #5145 "Schnittstelle Ilias: In Ilias gelöschte Nutzer führen zu Inkonsistenz"
Closes #5145 Merge request studip/studip!3844
-rw-r--r--lib/ilias_interface/ConnectedIlias.php10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/ilias_interface/ConnectedIlias.php b/lib/ilias_interface/ConnectedIlias.php
index 45f5e3d..aa39801 100644
--- a/lib/ilias_interface/ConnectedIlias.php
+++ b/lib/ilias_interface/ConnectedIlias.php
@@ -97,6 +97,12 @@ class ConnectedIlias
// init current user (only if ILIAS installation is active)
if ($this->ilias_config['is_active']) {
$this->user = new IliasUser($this->index, $this->ilias_config['version']);
+ if ($this->user->isConnected()) {
+ $ilias_user_exists = $this->soap_client->lookupUser($this->user->getUsername());
+ if (!$this->soap_client->getError() && !$ilias_user_exists) {
+ $this->user->unsetConnection(true);
+ }
+ }
// create account automatically if it doesn't exist
if (! $this->user->isConnected()) {
$this->soap_client->setCachingStatus(false);
@@ -651,9 +657,9 @@ class ConnectedIlias
public function getConnectedCoursesForUser(string $user_id): array
{
$query = 'SELECT module_id, object_id
- FROM object_contentmodules
+ FROM object_contentmodules
JOIN seminar_user ON object_contentmodules.object_id = seminar_user.Seminar_id
- WHERE seminar_user.user_id = ?
+ WHERE seminar_user.user_id = ?
AND system_type = ?
AND module_type = ?';
return DBManager::get()->fetchPairs($query, [