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