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