- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/sharepoint.php
- Класс: CAllIntranetSharepoint
- Вызов: CAllIntranetSharepoint::_SyncGetUser
static function _SyncGetUser($user_str)
{
$USER_XML_ID = 0;
$USER_ID = 0;
list($USER_XML_ID, $FIELDS) = explode(';', $user_str);
if ($USER_XML_ID > 0)
{
if (!($USER_ID = self::$arUsersCache[$USER_XML_ID]))
{
if ($uf_name = self::_CheckUF())
{
$dbRes = CUser::GetList('ID', 'ASC', array($uf_name => $USER_XML_ID));
if ($arRes = $dbRes->Fetch())
{
$USER_ID = $arRes['ID'];
self::$arUsersCache[$USER_XML_ID] = $USER_ID;
}
}
}
}
if ($USER_ID <= 0)
{
$arUserFields = explode(',', mb_substr($FIELDS, 1));
$arKeywords = preg_split('/[^w@.]+/', $arUserFields[1]);
$arFilters = array(
array('LOGIN' => $arUserFields[0]),
array('EMAIL' => $arUserFields[0]),
array('NAME' => $arUserFields[0]),
);
if (is_array($arKeywords) && count($arKeywords) > 0)
{
$v = implode('|', $arKeywords);
if ($v <> '')
{
$arFilters[] = array('EMAIL' => $v);
$arFilters[] = array('NAME' => $v);
}
}
//echo ''; print_r($arFilters); echo '
';
foreach ($arFilters as $arFilter)
{
$dbRes = CUser::GetList('id', 'asc', $arFilter);
if ($arUser = $dbRes->Fetch())
{
$USER_ID = $arUser['ID'];
break;
}
}
if ($USER_ID && $USER_XML_ID)
{
$u = new CUser();
$u->Update($USER_ID, array('UF_SP_ID' => $USER_XML_ID));
self::$arUsersCache[$USER_XML_ID] = $USER_ID;
}
}
return $USER_ID;
}