- Модуль: extranet
- Путь к файлу: ~/bitrix/modules/extranet/classes/general/extranet.php
- Класс: CExtranet
- Вызов: CExtranet::IsIntranetUser
static function IsIntranetUser($site = SITE_ID, $userID = 0)
{
global $USER;
static $staticCache = [];
if(!is_int($userID))
{
$userID = (int)$userID;
}
if($userID > 0)
{
if (isset($staticCache[$userID]))
{
$result = $staticCache[$userID];
}
else
{
$rsUser = CUser::GetList(
'ID',
'ASC',
array("ID_EQUAL_EXACT" => $userID),
array("FIELDS" => array("ID"), "SELECT" => array("UF_DEPARTMENT"))
);
$arUser = $rsUser->Fetch();
$result = $staticCache[$userID] = (
is_array($arUser)
&& isset($arUser["UF_DEPARTMENT"][0])
&& $arUser["UF_DEPARTMENT"][0] > 0
);
}
return $result;
}
if(!(
isset($USER)
&& is_object($USER)
&& ((get_class($USER) === 'CUser') || ($USER instanceof CUser))
&& $USER->IsAuthorized()
))
{
return false;
}
$userID = $USER->GetID();
if($userID <= 0)
{
return false;
}
if(isset(BitrixMainApplication::getInstance()->getKernelSession()["aExtranetUser_{$userID}"][$site]))
{
return true;
}
if(
$USER->IsAdmin()
|| (
Loader::includeModule('socialnetwork')
&& CSocNetUser::IsCurrentUserModuleAdmin($site)
)
)
{
BitrixMainApplication::getInstance()->getKernelSession()["aExtranetUser_{$userID}"][$site] = true;
return true;
}
if (isset($staticCache[$userID]))
{
$result = $staticCache[$userID];
}
else
{
$rsUser = CUser::GetList(
'ID',
'ASC',
array("ID_EQUAL_EXACT" => $userID),
array("FIELDS" => array("ID"), "SELECT" => array("UF_DEPARTMENT"))
);
$arUser = $rsUser->Fetch();
$result = $staticCache[$userID] = (
is_array($arUser)
&& isset($arUser["UF_DEPARTMENT"][0])
&& $arUser["UF_DEPARTMENT"][0] > 0
);
if ($result)
{
BitrixMainApplication::getInstance()->getKernelSession()["aExtranetUser_{$userID}"][$site] = true;
}
}
return $result;
}