• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_event.php
  • Класс: CIMEvent
  • Вызов: CIMEvent::OnBeforeUserSendPassword
static function OnBeforeUserSendPassword($params)
{
	$bots = IMBot::getListCache();
	if (empty($bots))
		return true;

	if (isset($params['LOGIN']) && !empty($params['LOGIN']))
	{
		if (mb_substr($params['LOGIN'], 0, mb_strlen(IMBot::LOGIN_START)) == IMBot::LOGIN_START)
		{
			$orm = BitrixMainUserTable::getList([
				'filter' => [
					'=LOGIN' => $params['LOGIN'],
					'=EXTERNAL_AUTH_ID' => IMBot::EXTERNAL_AUTH_ID
				]
			]);
			if ($orm->fetch())
			{
				$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_EVENT_ERROR_CHANGE_PASSWORD_FOR_BOT"), "ERROR_CHANGE_PASSWORD_FOR_BOT");
				return false;
			}
		}
	}

	if (isset($params['EMAIL']) && !empty($params['EMAIL']))
	{
		$orm = BitrixMainUserTable::getList([
			'filter' => [
				'=EMAIL' => $params['EMAIL'],
				'=EXTERNAL_AUTH_ID' => IMBot::EXTERNAL_AUTH_ID
			]
		]);
		if ($orm->fetch())
		{
			$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_EVENT_ERROR_CHANGE_PASSWORD_FOR_BOT"), "ERROR_CHANGE_PASSWORD_FOR_BOT");
			return false;
		}
	}

	return true;
}