• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile.php
  • Класс: BitrixIntranetComponentUserProfile
  • Вызов: UserProfile::getPermissions
protected function getPermissions()
{
	global $USER;

	static $cache = false;

	if (
		$cache === false
		&& Loader::includeModule('socialnetwork')
	)
	{
		global $USER;

		$currentUserPerms = CSocNetUserPerms::initUserPerms(
			$USER->getId(),
			$this->arParams["ID"],
			CSocNetUser::isCurrentUserModuleAdmin(SITE_ID, false)
		);

		$result = [
			'view' => (
				$currentUserPerms['IsCurrentUser']
				|| CSocNetUser::canProfileView($USER->getId(), $this->getUserData(), SITE_ID, ComponentHelper::getUrlContext())
			),
			'edit' => (
				$currentUserPerms["IsCurrentUser"]
				|| (
					$currentUserPerms["Operations"]["modifyuser"]
					&& $currentUserPerms["Operations"]["modifyuser_main"]
				)
			)
		];

		if (
			!ModuleManager::isModuleInstalled("bitrix24")
			&& $USER->isAdmin()
			&& !$currentUserPerms["IsCurrentUser"]
		)
		{
			$result['edit'] = (
				$result['edit']
				&& CSocNetUser::isCurrentUserModuleAdmin(SITE_ID, false)
			);
		}

		//check for integrator
		if (
			Loader::includeModule("bitrix24")
			&& $this->arParams["ID"] != $USER->GetID()
			&& BitrixBitrix24Integrator::isIntegrator($USER->GetID())
			&& CBitrix24::IsPortalAdmin($this->arParams["ID"])
			&& !BitrixBitrix24Integrator::isIntegrator($this->arParams["ID"])
		)
		{
			$result['edit'] = false;
		}

		$cache = $result;
	}
	else
	{
		$result = $cache;
	}

	return $result;
}