diff options
| author | Arne Schröder, M. A. <schroeder@data-quest.de> | 2025-03-26 11:26:46 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2025-03-26 11:26:46 +0000 |
| commit | 4d6a5d858db94eee5a059ddd605072eb752393c8 (patch) | |
| tree | aa54c64f30103e473a5c8d33e9842841a84469f0 /app/controllers/admin | |
| parent | a4d27f5c0d92d9e3c592ef2d2a908e23b4873e09 (diff) | |
Resolve "ILIAS-Schnittstelle: Inkompatibilität mit ILIAS 9"
Closes #4995
Merge request studip/studip!3888
Diffstat (limited to 'app/controllers/admin')
| -rw-r--r-- | app/controllers/admin/ilias_interface.php | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/app/controllers/admin/ilias_interface.php b/app/controllers/admin/ilias_interface.php index 38fa8fa..dfb8f0a 100644 --- a/app/controllers/admin/ilias_interface.php +++ b/app/controllers/admin/ilias_interface.php @@ -122,7 +122,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController $this->valid_url = false; $this->ilias_version = ''; $this->ilias_version_date = ''; - $this->clients = []; + $this->ilias_clients = []; if ($index === 'new') { // default values $this->ilias_config = [ @@ -170,7 +170,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController // get ILIAS server info if (Request::get('ilias_url')) { $info = ConnectedIlias::getIliasInfo(Request::get('ilias_url')); - if (count($info)) { + if (is_array($info) && count($info)) { $this->valid_url = true; $this->ilias_config['url'] = Request::get('ilias_url'); $this->ilias_config['http_connection_timeout'] = (int) Request::get('ilias_http_connection_timeout'); @@ -247,14 +247,15 @@ class Admin_IliasInterfaceController extends AuthenticatedController */ public function edit_content_action($index) { - $this->ilias_config = $this->ilias_configs[$index]; $this->ilias_index = $index; $this->ilias_datafields = []; $connected_ilias = new ConnectedIlias($index); + $this->ilias_config = $connected_ilias->ilias_config; + if ($admin_id = $connected_ilias->soap_client->lookupUser($this->ilias_config['admin'])) { $user = $connected_ilias->soap_client->getUser($admin_id); - if (array_key_exists('udfs', $user)) { + if (!empty($user) && array_key_exists('udfs', $user)) { $this->ilias_datafields = $user['udfs']; } } @@ -266,10 +267,10 @@ class Admin_IliasInterfaceController extends AuthenticatedController */ public function edit_permissions_action($index) { - $this->ilias_config = $this->ilias_configs[$index]; $this->ilias_index = $index; $connected_ilias = new ConnectedIlias($index); + $this->ilias_config = $connected_ilias->ilias_config; $this->global_roles = $connected_ilias->soap_client->getRoles('global', -1); } @@ -504,28 +505,31 @@ class Admin_IliasInterfaceController extends AuthenticatedController */ public function soap_methods_action($index) { - if ($this->ilias_configs[$index]['is_active']) { - $ilias = new ConnectedIlias($index); - $this->soap_methods = $ilias->getSoapMethods(); - ksort($this->soap_methods); - $this->ilias_index = $index; - if (Request::get('ilias_soap_method')) { - $this->ilias_soap_method = Request::get('ilias_soap_method'); - foreach ($this->soap_methods[Request::get('ilias_soap_method')] as $param) { - switch ($param) { - case "sid" : $this->params[$param] = $ilias->soap_client->getSID(); - break; - case "user_id" : $this->params[$param] = $ilias->user->getId(); - break; - } + $ilias = new ConnectedIlias($index); + + $this->soap_methods = $ilias->getSoapMethods(); + ksort($this->soap_methods); + $this->ilias_index = $index; + if (Request::get('ilias_soap_method')) { + $this->ilias_soap_method = Request::get('ilias_soap_method'); + foreach ($this->soap_methods[Request::get('ilias_soap_method')] as $param) { + switch ($param) { + case "sid" : $this->params[$param] = $ilias->soap_client->getSID(); + break; + case "user_id" : $this->params[$param] = is_object($ilias->user) ? $ilias->user->getId() : ''; + break; } - } elseif (Request::get('ilias_call')) { - $params = []; - foreach ($this->soap_methods[Request::get('ilias_call')] as $param) { + } + } elseif (Request::get('ilias_call')) { + $params = []; + foreach ($this->soap_methods[Request::get('ilias_call')] as $param) { + if ($param === 'user_ids') { + $params[$param] = [Request::get('ilias_soap_param_'.$param)]; + } else { $params[$param] = Request::get('ilias_soap_param_'.$param); } - $this->result = $ilias->soap_client->call(Request::get('ilias_call'), $params); } + $this->result = $ilias->soap_client->call(Request::get('ilias_call'), $params); } } } |
