• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/user.php
  • Класс: CAllUser
  • Вызов: CAllUser::DeactivateAgent
static function DeactivateAgent()
{
	$blockDays = (int)Option::get('main', 'inactive_users_block_days', 0);
	if ($blockDays > 0)
	{
		$log = (Option::get('main', 'event_log_block_user', 'N') === 'Y');

		$userObj = new CUser();

		$date = new MainTypeDate();
		$date->add("-{$blockDays}D");

		$filter = [
			"=ACTIVE" => 'Y',
			"=BLOCKED" => 'N',
			" $date,
		];
		$users = MainUserTable::getList([
			"filter" => $filter,
			"select" => ["ID"],
		]);
		while ($user = $users->fetch())
		{
			$groups = static::GetUserGroup($user["ID"]);
			$admin = in_array(1, $groups);

			//admins shouldn't be blocked
			if (!$admin)
			{
				$userObj->Update($user["ID"], ["BLOCKED" => 'Y'], false);

				if ($log)
				{
					CEventLog::Log('SECURITY', 'USER_BLOCKED', 'main', $user['ID'], "Inactive days: {$blockDays}");
				}
			}
		}
	}
	return "CUser::DeactivateAgent();";
}