19declare(strict_types=1);
42 if (isset(
$DIC[
'ilDB'])) {
43 $this->db =
$DIC[
'ilDB'];
46 if (isset(
$DIC[
'lng'])) {
47 $this->
lng = $DIC[
'lng'];
50 if (isset(
$DIC[
'ilDB'])) {
51 $this->log =
$DIC[
'ilLog'];
57 return 'user_check_accounts';
62 return $this->
lng->txt(
'check_user_accounts');
67 return $this->
lng->txt(
'check_user_accounts_desc');
72 return JobScheduleType::DAILY;
92 $status = JobResult::STATUS_NO_ACTION;
95 $two_weeks_in_seconds = $now + (60 * 60 * 24 * 14);
98 $query =
'SELECT usr_id, login, time_limit_until ' .
100 'WHERE time_limit_message = "0" ' .
101 'AND time_limit_unlimited = "0" ' .
102 'AND time_limit_from < ' . $this->db->quote($now,
'integer') .
' ' .
103 'AND time_limit_until > ' . $this->db->quote($now,
'integer') .
' ' .
104 'AND time_limit_until < ' . $this->db->quote($two_weeks_in_seconds,
'integer');
106 $res = $this->db->query($query);
108 while ($row = $this->db->fetchObject(
$res)) {
109 $expires = $row->time_limit_until;
110 $login = $row->login;
111 $usr_id = $row->usr_id;
118 $body = $salutation .
"\n\n";
120 $lng->
txt(
'account_expires_body'),
123 date(
'Y-m-d H:i', $expires)
134 $lng->
txt(
'account_expires_subject'),
140 $query =
'UPDATE usr_data SET time_limit_message = "1" WHERE usr_id = "' . $usr_id .
'"';
141 $this->db->query($query);
144 $this->log->write(
'Cron: (checkUserAccounts()) sent message to ' . $login .
'.');
151 if ($this->counter) {
152 $status = JobResult::STATUS_OK;
155 $result->setStatus($status);
163 $query =
'SELECT usr_id FROM usr_data '
164 .
'WHERE (reg_hash IS NOT NULL AND reg_hash != %s)'
166 .
'AND create_date < %s';
167 $res = $this->db->queryF(
169 [
'text',
'integer',
'timestamp'],
170 [
'', 0, date(
'Y-m-d H:i:s', time() - $registration_settings->getRegistrationHashLifetime())]
172 while ($row = $this->db->fetchAssoc(
$res)) {
175 $this->log->write(
'Cron: Deleted ' . $user->getLogin() .
' [' . $user->getId() .
'] ' . __METHOD__);
Component logger with individual log levels by component id.
static _getLanguageOfUser(int $a_usr_id)
Get language object of user.
loadLanguageModule(string $a_module)
Load language module.
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...
static getSalutation(int $a_usr_id, ?ilLanguage $a_language=null)
static _getAutoGeneratedMessageString(?ilLanguage $lang=null)
static _lookupEmail(int $a_user_id)
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.
hasAutoActivation()
Is to be activated on "installation", does only work for ILIAS core cron jobs.
getDefaultScheduleValue()
checkNotConfirmedUserAccounts()
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc