• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user.php
  • Класс: CAllSocNetUser
  • Вызов: CAllSocNetUser::OnGetProfileView
static function OnGetProfileView($currentUserId, $arUser, $siteId, $arContext)
{
	if (!ModuleManager::isModuleInstalled('mail'))
	{
		return false;
	}

	$currentUserId = (int)$currentUserId;

	if (
		$currentUserId <= 0
		|| !is_array($arUser)
	)
	{
		return false;
	}

	if (
		isset($arUser['EXTERNAL_AUTH_ID'])
		&& $arUser['EXTERNAL_AUTH_ID'] === 'email'
		&& Loader::includeModule('intranet')
	)
	{
		$res = BitrixIntranetUserTable::getList([
			'filter' => [
				'=ID' => $currentUserId,
			],
			'select' => [ 'USER_TYPE' ],
		]);

		if (
			($currentUserFields = $res->fetch())
			&& $currentUserFields['USER_TYPE'] === 'employee'
		)
		{
			return true;
		}
	}

	if (
		!isset($arContext['ENTITY_TYPE'], $arContext['ENTITY_ID'], $arUser['ID'])
		|| (int)$arContext['ENTITY_ID'] <= 0
		|| $arContext['ENTITY_TYPE'] !== 'LOG_ENTRY'
		|| (int)$arUser['ID'] <= 0
	)
	{
		return false;
	}

	if (
		(
			isset($arUser['EXTERNAL_AUTH_ID'])
			&& $arUser['EXTERNAL_AUTH_ID'] === 'email'
		) // -> email user
		||
		(
			($res = CUser::getById($currentUserId))
			&& ($currentUserFields = $res->fetch())
			&& ($currentUserFields['EXTERNAL_AUTH_ID'] === 'email')
		) // email user ->
	)
	{
		return self::CheckContext($currentUserId, $arUser['ID'], $arContext);
	}

	return false;
}