- Модуль: 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;
}