aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/admin/ilias_interface.php
diff options
context:
space:
mode:
authorArne Schröder, M. A. <schroeder@data-quest.de>2024-09-06 14:25:39 +0000
committerAndré Noack <noack@data-quest.de>2024-09-06 14:25:39 +0000
commit6ed13d5182d02bb57029ddfd188e07d77c9b023a (patch)
treed56a340a6330db4a3275052930423de9d6e6a05e /app/controllers/admin/ilias_interface.php
parentfb3184b60c5b7d3e2b9b6a07c161dfbb69f81133 (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.php31
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');
}