• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sync.php
  • Класс: CCalendarSync
  • Вызов: CCalendarSync::GetUsersByEmailList
static function GetUsersByEmailList($emailList = array())
{
	global $DB;
	$users = [];

	if (CCalendar::IsSocNet())
	{
		$exchangeMailbox = COption::GetOptionString("dav", "exchange_mailbox", "");
		$exchangeUseLogin = COption::GetOptionString("dav", "exchange_use_login", "Y");
		$exchangeMailboxStrlen = mb_strlen($exchangeMailbox);

		$strValue = "";
		foreach($emailList as $email)
		{
			$strValue .= ",'".$DB->ForSql($email)."'";
		}
		$strValue = trim($strValue, ', ');

		if($strValue != '')
		{
			$strSql = "SELECT U.ID, BUF.UF_BXDAVEX_MAILBOX
					FROM b_user U
					LEFT JOIN b_uts_user BUF ON (BUF.VALUE_ID = U.ID)
					WHERE
						U.ACTIVE = 'Y' AND
						BUF.UF_BXDAVEX_MAILBOX in (".$strValue.")";

			$res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); $checkedEmails = []; while($entry = $res->Fetch()) { $checkedEmails[] = mb_strtolower($entry["UF_BXDAVEX_MAILBOX"]); $users[] = $entry['ID']; } if ($exchangeUseLogin == "Y") { $strLogins = ''; foreach($emailList as $email) { if(!in_array(mb_strtolower($email), $checkedEmails) && mb_strtolower(mb_substr($email, mb_strlen($email) - $exchangeMailboxStrlen)) == mb_strtolower($exchangeMailbox)) { $value = mb_substr($email, 0, mb_strlen($email) - $exchangeMailboxStrlen); $strLogins .= ",'".$DB->ForSql($value)."'"; } } $strLogins = trim($strLogins, ', '); if ($strLogins !== '') { $res = $DB->Query("SELECT U.ID, U.LOGIN FROM b_user U WHERE U.ACTIVE = 'Y' AND U.LOGIN in (".$strLogins.")", false, "File: ".__FILE__."
Line: ".__LINE__); while($entry = $res->Fetch()) { $users[] = $entry['ID']; } } } } } return $users; }