19 declare(strict_types=1);
40 if (isset($DIC[
'ilDB'])) {
41 $this->db = $DIC[
'ilDB'];
44 if (isset($DIC[
'lng'])) {
45 $this->
lng = $DIC[
'lng'];
48 if (isset($DIC[
'ilDB'])) {
49 $this->log = $DIC[
'ilLog'];
55 return 'user_check_accounts';
60 return $this->
lng->txt(
'check_user_accounts');
65 return $this->
lng->txt(
'check_user_accounts_desc');
70 return CronJobScheduleType::SCHEDULE_TYPE_DAILY;
93 $two_weeks_in_seconds = $now + (60 * 60 * 24 * 14);
96 $query =
'SELECT usr_id, login, time_limit_until ' .
98 'WHERE time_limit_message = "0" ' .
99 'AND time_limit_unlimited = "0" ' .
100 'AND time_limit_from < ' . $this->db->quote($now,
'integer') .
' ' .
101 'AND time_limit_until > ' . $this->db->quote($now,
'integer') .
' ' .
102 'AND time_limit_until < ' . $this->db->quote($two_weeks_in_seconds,
'integer');
104 $res = $this->db->query($query);
106 while ($row = $this->db->fetchObject(
$res)) {
107 $expires = $row->time_limit_until;
108 $login = $row->login;
109 $usr_id = $row->usr_id;
116 $body = $salutation .
"\n\n";
118 $lng->
txt(
'account_expires_body'),
121 date(
'Y-m-d H:i', $expires)
132 $lng->
txt(
'account_expires_subject'),
138 $query =
'UPDATE usr_data SET time_limit_message = "1" WHERE usr_id = "' . $usr_id .
'"';
139 $this->db->query($query);
142 $this->log->write(
'Cron: (checkUserAccounts()) sent message to ' . $login .
'.');
149 if ($this->counter) {
153 $result->setStatus($status);
161 $query =
'SELECT usr_id FROM usr_data ' 162 .
'WHERE (reg_hash IS NOT NULL AND reg_hash != %s)' 164 .
'AND create_date < %s';
165 $res = $this->db->queryF(
167 [
'text',
'integer',
'timestamp'],
168 [
'', 0, date(
'Y-m-d H:i:s', time() - $registration_settings->getRegistrationHashLifetime())]
170 while ($row = $this->db->fetchAssoc(
$res)) {
173 $this->log->write(
'Cron: Deleted ' . $user->getLogin() .
' [' . $user->getId() .
'] ' . __METHOD__);
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
Component logger with individual log levels by component id.
loadLanguageModule(string $a_module)
Load language module.
checkNotConfirmedUserAccounts()
static _getLanguageOfUser(int $a_usr_id)
Get language object of user.
final const STATUS_NO_ACTION
static getSalutation(int $a_usr_id, ?ilLanguage $a_language=null)
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilObjAuthSettingsGUI.
This cron send notifications about expiring user accounts.
__construct(Container $dic, ilPlugin $plugin)
static _getAutoGeneratedMessageString(ilLanguage $lang=null)
static _lookupEmail(int $a_user_id)
getDefaultScheduleValue()