diff options
| author | Arne Schröder, M. A. <schroeder@data-quest.de> | 2024-09-06 14:25:39 +0000 |
|---|---|---|
| committer | André Noack <noack@data-quest.de> | 2024-09-06 14:25:39 +0000 |
| commit | 6ed13d5182d02bb57029ddfd188e07d77c9b023a (patch) | |
| tree | d56a340a6330db4a3275052930423de9d6e6a05e /app/controllers/admin/ilias_interface.php | |
| parent | fb3184b60c5b7d3e2b9b6a07c161dfbb69f81133 (diff) | |
Resolve "Übergabe von Matrikelnummern und Studiengängen durch die ILIAS-Schnittstelle"
Closes #4271
Merge request studip/studip!3369
Diffstat (limited to 'app/controllers/admin/ilias_interface.php')
| -rw-r--r-- | app/controllers/admin/ilias_interface.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/controllers/admin/ilias_interface.php b/app/controllers/admin/ilias_interface.php index fd3ac07..206e675 100644 --- a/app/controllers/admin/ilias_interface.php +++ b/app/controllers/admin/ilias_interface.php @@ -243,6 +243,15 @@ class Admin_IliasInterfaceController extends AuthenticatedController { $this->ilias_config = $this->ilias_configs[$index]; $this->ilias_index = $index; + $this->ilias_datafields = []; + + $connected_ilias = new ConnectedIlias($index); + 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)) { + $this->ilias_datafields = $user['udfs']; + } + } } /** @@ -315,6 +324,28 @@ class Admin_IliasInterfaceController extends AuthenticatedController if (Request::getInstance()->offsetExists('ilias_matriculation')) { $this->ilias_configs[$index]['matriculation'] = Request::get('ilias_matriculation'); } + if (Request::getInstance()->offsetExists('ilias_discipline_1') && Request::getInstance()->offsetExists('ilias_discipline_2')) { + if ($admin_id = $connected_ilias->soap_client->lookupUser($this->ilias_configs[$index]['admin'])) { + $user = $connected_ilias->soap_client->getUser($admin_id); + if (array_key_exists('udfs', $user)) { + $this->ilias_datafields = $user['udfs']; + foreach ($this->ilias_datafields as $field) { + if (Request::option('ilias_discipline_1') == $field['id']) { + $this->ilias_configs[$index]['discipline_1'] = ['id' => $field['id'], 'name' => $field['name']]; + } + if (Request::option('ilias_discipline_2') == $field['id']) { + $this->ilias_configs[$index]['discipline_2'] = ['id' => $field['id'], 'name' => $field['name']]; + } + } + if (!Request::option('ilias_discipline_1')) { + unset($this->ilias_configs[$index]['discipline_1']); + } + if (!Request::option('ilias_discipline_2')) { + unset($this->ilias_configs[$index]['discipline_2']); + } + } + } + } if (Request::getInstance()->offsetExists('ilias_cat_semester')) { $this->ilias_configs[$index]['cat_semester'] = Request::get('ilias_cat_semester'); } |
