• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/account.php
  • Класс: CDavAccount
  • Вызов: CDavAccount::GetAccountByName
static function GetAccountByName($name)
{
	if ($name == '')
		throw new Exception("name");

	$arResult = null;

	if (!strncasecmp("group-", $name, 6) && CModule::IncludeModule("socialnetwork"))
	{
		$groupId = intval(mb_substr($name, 6));

		if (array_key_exists($groupId, self::$accountsCache["groups"]))
			return self::$accountsCache["groups"][$groupId];

		$dbGroup = CSocNetGroup::GetList(array(), array("ID" => $groupId, "ACTIVE" => "Y"), false, false, array("ID", "SITE_ID", "NAME", "OWNER_ID", "OWNER_EMAIL"));
		if ($arGroup = $dbGroup->Fetch())
		{
			$arResult = self::ExtractAccountFromGroup($arGroup);
			self::$accountsCache["groups"][$arGroup["ID"]] = $arResult;
		}

		return $arResult;
	}

	if (array_key_exists($name, self::$accountsCacheMap))
		return self::$accountsCache["users"][self::$accountsCacheMap[$name]];


	$dbUsers = BitrixMainUserTable::getList([
		'filter' => ["=LOGIN" => $name, "=ACTIVE" => "Y", "!=EXTERNAL_AUTH_ID" => "email"],
		'select' => ["ID", "NAME", "EMAIL", "LAST_NAME", "LOGIN"]

	]);
	if ($arUser = $dbUsers->fetch())
	{
		$arResult = self::ExtractAccountFromUser($arUser);
		self::$accountsCache["users"][$arUser["ID"]] = $arResult;
		self::$accountsCacheMap[$name] = $arUser["ID"];
	}

	return $arResult;
}