• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangecalendar2.php
  • Класс: CDavExchangeCalendar
  • Вызов: CDavExchangeCalendar::GetUsersEmailMap
static function GetUsersEmailMap($emailList = [])
	{
		global $DB;
		$emailMap = [];

		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']; $emailMap[mb_strtolower($entry["UF_BXDAVEX_MAILBOX"])] = $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']; $emailMap[mb_strtolower($entry["LOGIN"].$exchangeMailbox)] = $entry['ID']; } } } } } return $emailMap; }