• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogComponent
  • Вызов: CSocNetLogComponent::getExtranetRedirectSite
static function getExtranetRedirectSite($extranetSiteId)
{
	global $USER;

	$arRedirectSite = false;

	if ($USER->IsAuthorized())
	{
		$rsCurrentUser = CUser::GetById($USER->GetId());
		if ($arCurrentUser = $rsCurrentUser->Fetch())
		{
			$bCurrentUserIntranet = (
				!empty($arCurrentUser["UF_DEPARTMENT"])
				&& is_array($arCurrentUser["UF_DEPARTMENT"])
				&& intval($arCurrentUser["UF_DEPARTMENT"][0]) > 0
			);

			if (
				SITE_ID == $extranetSiteId
				&& $bCurrentUserIntranet
				&& !CSocNetUser::IsCurrentUserModuleAdmin()
			) // extranet -> intranet
			{
				$arRedirectSite = CSocNetLogComponent::GetSiteByDepartmentId($arCurrentUser["UF_DEPARTMENT"]);
				if ($arRedirectSite["LID"] == SITE_ID)
				{
					$arRedirectSite = false;
				}
			}
			elseif (
				SITE_ID != $extranetSiteId
				&& !$bCurrentUserIntranet
				&& !CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false)
			) // intranet -> extranet
			{
				$rsRedirectSite = CSite::GetList("SORT", "asc", array("ACTIVE" => "Y", "LID" => $extranetSiteId)); // cache used
				$arRedirectSite = $rsRedirectSite->Fetch();
			}
		}
	}

	return $arRedirectSite;
}