aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndré Noack <noack@data-quest.de>2024-01-29 10:06:41 +0000
committerAndré Noack <noack@data-quest.de>2024-01-29 10:06:41 +0000
commitda0110d5e85279123e8dde392cb4c926397238bf (patch)
tree5879f978df3c47d4ce00de67e3eb9d53550b1466 /lib
parentea4b1fe2e04789e3b9e5667ec5f5da34ada3911b (diff)
Resolve #3681 "ILIAS-Schnittstelle: Konfigurationsoption "Authentifizierungsplugin übernehmen" hat keine Auswirkungen"
Closes #3681 Merge request studip/studip!2554
Diffstat (limited to 'lib')
-rw-r--r--lib/ilias_interface/ConnectedIlias.class.php12
-rw-r--r--lib/ilias_interface/IliasUser.class.php34
2 files changed, 27 insertions, 19 deletions
diff --git a/lib/ilias_interface/ConnectedIlias.class.php b/lib/ilias_interface/ConnectedIlias.class.php
index 6b82783..09e1507 100644
--- a/lib/ilias_interface/ConnectedIlias.class.php
+++ b/lib/ilias_interface/ConnectedIlias.class.php
@@ -325,7 +325,6 @@ class ConnectedIlias
}
$user_data = $this->user->getUserArray();
$user_data["login"] = $this->ilias_config['user_prefix'].$user_data["login"];
- $user_data['auth_mode'] = 'default';
$user_exists = $this->soap_client->lookupUser($user_data["login"]);
//automatische Zuordnung von bestehenden Ilias Accounts
@@ -351,10 +350,18 @@ class ConnectedIlias
($this->user->auth_plugin != 'standard') &&
($this->user->auth_plugin == $this->ilias_config['ldap_enable'])) {
$user_data['external_account'] = $this->user->studip_login;
+ $auth_plugin = StudipAuthAbstract::getInstance($this->user->auth_plugin);
+ if ($auth_plugin instanceof StudipAuthLdap) {
+ $user_data['auth_mode'] = 'ldap';
+ } elseif ($auth_plugin instanceof StudipAuthCAS) {
+ $user_data['auth_mode'] = 'cas';
+ } elseif ($auth_plugin instanceof StudipAuthShib) {
+ $user_data['auth_mode'] = 'shibboleth';
+ }
}
// set role according to Stud.IP perm
- if ($GLOBALS['auth']->auth['perm'] === 'root') {
+ if (User::findCurrent()->perms === 'root') {
$role_id = 2;
} else {
$role_id = 4;
@@ -405,7 +412,6 @@ class ConnectedIlias
if ($update_user->isConnected() && $update_user->id && $this->soap_client->lookupUser($update_user->login)) {
$user_data = $update_user->getUserArray();
$user_data["login"] = $this->ilias_config['user_prefix'].$user_data["login"];
- $user_data['auth_mode'] = 'default';
// set role according to Stud.IP perm
if ($user->perms == "root") {
diff --git a/lib/ilias_interface/IliasUser.class.php b/lib/ilias_interface/IliasUser.class.php
index 6ee980a..5737e65 100644
--- a/lib/ilias_interface/IliasUser.class.php
+++ b/lib/ilias_interface/IliasUser.class.php
@@ -169,22 +169,24 @@ class IliasUser
function getUserArray()
{
// data for user-account in ILIAS
- $user_data["id"] = $this->id;
- $user_data["login"] = $this->studip_login;
- $user_data["passwd"] = $this->external_password;
- $user_data["firstname"] = $this->firstname;
- $user_data["lastname"] = $this->lastname;
- $user_data["title"] = $this->title;
- $user_data["gender"] = $this->gender;
- $user_data["email"] = $this->email;
- $user_data["street"] = $this->street;
- $user_data["phone_home"] = $this->phone_home;
- $user_data["matriculation"] = $this->matriculation;
- $user_data["time_limit_unlimited"] = 1;
- $user_data["active"] = 1;
- $user_data["approve_date"] = date('Y-m-d H:i:s');
- $user_data["accepted_agreement"] = true;
- $user_data["agree_date"] = date('Y-m-d H:i:s');
+ $user_data['id'] = $this->id;
+ $user_data['login'] = $this->studip_login;
+ $user_data['passwd'] = $this->external_password;
+ $user_data['firstname'] = $this->firstname;
+ $user_data['lastname'] = $this->lastname;
+ $user_data['title'] = $this->title;
+ $user_data['gender'] = $this->gender;
+ $user_data['email'] = $this->email;
+ $user_data['street'] = $this->street;
+ $user_data['phone_home'] = $this->phone_home;
+ $user_data['matriculation'] = $this->matriculation;
+ $user_data['time_limit_unlimited'] = 1;
+ $user_data['active'] = 1;
+ $user_data['approve_date'] = date('Y-m-d H:i:s');
+ $user_data['accepted_agreement'] = true;
+ $user_data['agree_date'] = date('Y-m-d H:i:s');
+ $user_data['auth_mode'] = 'default';
+ $user_data['external_account'] = '';
return $user_data;
}