19declare(strict_types=1);
46 $base_query = $this->db->query(
47 'SELECT * FROM ' . self::USER_BASE_TABLE .
" WHERE usr_id={$id}"
50 $additional_query = $this->db->query(
51 'SELECT field_id, value FROM ' . self::USER_VALUES_TABLE .
" WHERE usr_id = {$id}"
55 $this->db->fetchObject($base_query),
71 $query = $this->db->query(
72 'SELECT * FROM ' . self::USER_BASE_TABLE
73 .
" WHERE {$this->db->in('usr_id', $user_ids)}"
76 $prepared_query = $this->db->prepare(
'SELECT field_id, value FROM '
77 . self::USER_VALUES_TABLE .
' WHERE usr_id = ?');
79 while (($base_data = $this->db->fetchObject($query)) !==
null) {
83 $this->db->execute($prepared_query, $base_data->usr_id),
89 $this->db->free($prepared_query);
96 self::USER_BASE_TABLE,
137 $system_information[
'last_login'] !==
'' ? $system_information[
'last_login'] :
null
141 $system_information[
'first_login'] !==
'' ? $system_information[
'first_login'] :
null
143 'last_profile_prompt' => [
145 $system_information[
'last_profile_prompt'] !==
'' ? $system_information[
'last_profile_prompt'] :
null
169 $this->db->manipulateF(
170 'DELETE FROM ' . self::USER_VALUES_TABLE
171 .
" WHERE field_id='{$this->db->quote($identifier, \ilDBConstants::T_TEXT)}'"
177 $this->db->manipulate(
178 'DELETE FROM ' . self::USER_BASE_TABLE
179 .
" WHERE usr_id='{$this->db->quote($usr_id, \ilDBConstants::T_INTEGER)}'"
181 $this->db->manipulate(
182 'DELETE FROM ' . self::USER_VALUES_TABLE
183 .
" WHERE usr_id='{$this->db->quote($usr_id, \ilDBConstants::T_INTEGER)}'"
190 string $encoding_type,
193 $this->db->manipulateF(
194 'UPDATE usr_data SET passwd = %s, passwd_enc_type = %s, passwd_salt = %s WHERE usr_id = %s',
196 [$password, $encoding_type, $salt, $usr_id]
204 $this->db->manipulateF(
205 'UPDATE usr_data SET login = %s WHERE usr_id = %s',
212 \stdClass $base_data,
213 array $additional_data
218 $base_data->rid !== null && $base_data->rid !== self::NO_AVATAR_RID
219 ? $this->irss->manage()->find($base_data->rid)
221 $base_data->firstname ??
'',
222 $base_data->lastname ??
'',
223 $base_data->title ??
'',
224 Genders::tryFrom($base_data->gender ??
''),
225 $base_data->birthday !== null
226 ? new \DateTimeImmutable($base_data->birthday, new \DateTimeZone(
'UTC'))
228 $base_data->institution ??
'',
229 $base_data->department ??
'',
230 $base_data->street ??
'',
231 $base_data->city ??
'',
232 $base_data->zipcode ??
'',
233 $base_data->country ??
'',
234 $base_data->email ??
'',
235 $base_data->second_email,
236 $base_data->phone_office ??
'',
237 $base_data->phone_home ??
'',
238 $base_data->phone_mobile ??
'',
239 $base_data->fax ??
'',
240 $base_data->matriculation ??
'',
241 $base_data->hobby ??
'',
242 $base_data->referral_comment ??
'',
244 'latitude' => $base_data->latitude,
245 'longitude' => $base_data->longitude,
246 'zoom' => $base_data->loc_zoom
250 static function (array
$c, \stdClass $v): array {
251 if (!array_key_exists($v->field_id,
$c)) {
252 $c[$v->field_id] = [];
254 $c[$v->field_id][] = $v->value;
259 ))->withSystemInformation([
260 'last_password_change' => $base_data->last_password_change,
261 'login_attempts' => $base_data->login_attempts,
262 'passwd' => $base_data->passwd,
263 'passwd_salt' => $base_data->passwd_salt,
264 'passwd_enc_type' => $base_data->passwd_enc_type,
265 'passwd_policy_reset' => $base_data->passwd_policy_reset === 1,
266 'client_ip' => $base_data->client_ip ??
'',
267 'last_login' => $base_data->last_login ??
'',
268 'first_login' => $base_data->first_login ??
'',
269 'last_profile_prompt' => $base_data->last_profile_prompt ??
'',
270 'active' => $base_data->active,
271 'approve_date' => $base_data->approve_date,
272 'agree_date' => $base_data->agree_date,
273 'inactivation_date' => $base_data->inactivation_date,
274 'time_limit_owner' => $base_data->time_limit_owner,
275 'time_limit_unlimited' => $base_data->time_limit_unlimited === 1,
276 'time_limit_from' => $base_data->time_limit_from,
277 'time_limit_until' => $base_data->time_limit_until,
278 'profile_incomplete' => $base_data->profile_incomplete === 1,
279 'auth_mode' => $base_data->auth_mode,
280 'ext_account' => $base_data->ext_account,
281 'is_self_registered' => $base_data->is_self_registered === 1,
282 'last_update' => $base_data->last_update ??
'',
283 'create_date' => $base_data->create_date ??
'',
289 $this->db->manipulate(
290 'DELETE FROM ' . self::USER_VALUES_TABLE
291 .
" WHERE usr_id = {$user_data->getId()}"
295 if ($values_for_storage ===
'') {
299 $this->db->manipulate(
300 'INSERT INTO ' . self::USER_VALUES_TABLE .
' (usr_id, field_id, value) '
301 .
'VALUES ' . $values_for_storage
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(private readonly \ilDBInterface $db, private readonly ResourceStorage $irss)
storePasswordFor(int $usr_id, string $password, string $encoding_type, ?string $salt)
storeAdditionalFields(Data $user_data)
deleteForFieldIdentifier(string $identifier)
const string USER_VALUES_TABLE
storeLoginFor(int $usr_id, string $login)
const string NO_AVATAR_RID
deleteForUser(int $usr_id)
buildFromData(\stdClass $base_data, array $additional_data)
const string USER_BASE_TABLE
getMultiple(array $user_ids)
getAdditionalFieldsStorageValues(\ilDBInterface $db)
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists('../ilias.ini.php'))