• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/authmanager.php
  • Класс: CSocServAuth
  • Вызов: CSocServAuth::GetUserArray
static function GetUserArray($authId)
{
	$ttl = 10000;
	$cache_id = 'socserv_ar_user';
	$obCache = new CPHPCache;
	$cache_dir = '/bx/socserv_ar_user';

	if($obCache->InitCache($ttl, $cache_id, $cache_dir))
	{
		$arResult = $obCache->GetVars();
	}
	else
	{
		$arUserXmlId = $arOaToken = $arOaSecret = $arSiteId = array();
		$dbSocUser = UserTable::getList([
			'filter' => [
				'=EXTERNAL_AUTH_ID' => $authId,
				"=USER.ACTIVE" => 'Y'
			],
			'select' => ["XML_ID", "USER_ID", "OATOKEN", "OASECRET", "SITE_ID"]
		]);

		while($arSocUser = $dbSocUser->fetch())
		{
			$arUserXmlId[$arSocUser["USER_ID"]] = $arSocUser["XML_ID"];
			$arOaToken[$arSocUser["USER_ID"]] = $arSocUser["OATOKEN"];
			$arOaSecret[$arSocUser["USER_ID"]] = $arSocUser["OASECRET"];
			$arSiteId[$arSocUser["USER_ID"]] = $arSocUser["SITE_ID"];
		}
		$arResult = array($arUserXmlId, $arOaToken, $arOaSecret, $arSiteId);
		if($obCache->StartDataCache())
			$obCache->EndDataCache($arResult);
	}
	return $arResult;
}