• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskwebservice.php
  • Класс: CTasksWebService
  • Вызов: CTasksWebService::__getUser
function __getUser($user_str)
{
	$USER_ID = 0;

	// examples of $user_str:
	// 468;#Andrey Nikitin,#a.nikitin,#a.nikitin@example.com,#,#Andrey Nikitin
	// 468;#a.nikitin@example.com,Andrey Nikitin

	[$USER_ID, $FIELDS] = explode(';', $user_str);

	if ($USER_ID <= 0)
	{
		$arFilters = array();

		$arUserFields = explode(',', $FIELDS);

		foreach ($arUserFields as $probablyEmail)
		{
			if (mb_strpos($probablyEmail, '@') === false)
				continue;

			$probablyEmail = str_replace('#', '', $probablyEmail);

			$arFilters[] = array('EMAIL' => $probablyEmail);
			$arFilters[] = array('LOGIN' => $probablyEmail);

			$probablyLogin = mb_substr($probablyEmail, 0, mb_strpos($probablyEmail, '@'));
			$arFilters[] = array('LOGIN' => $probablyLogin);

			break;
		}

		foreach ($arFilters as $arFilter)
		{
			$dbRes = CUser::GetList('id', 'asc', $arFilter);
			if ($arUser = $dbRes->Fetch())
			{
				$USER_ID = $arUser['ID'];
				break;
			}
		}
	}

	return $USER_ID;
}