• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/classes/general/listperm.php
  • Класс: CListPermissions
  • Вызов: CListPermissions::_socnet_check
protected function _socnet_check($USER, $iblock_type_id, $iblock_id, $socnet_group_id)
{
	$type_check = CListPermissions::_socnet_type_check($USER, $iblock_type_id, $socnet_group_id);
	if($type_check < 0)
		return $type_check;

	$iblock_check = CListPermissions::_iblock_check($iblock_type_id, $iblock_id);
	if($iblock_check < 0)
		return $iblock_check;

	$iblock_socnet_group_id = CIBlock::GetArrayByID($iblock_id, "SOCNET_GROUP_ID");
	if($iblock_socnet_group_id != $socnet_group_id)
		return CListPermissions::ACCESS_DENIED;

	$socnet_role = CSocNetUserToGroup::GetUserRole($USER->GetID(), $socnet_group_id);

	if (CSocNetUser::IsCurrentUserModuleAdmin())
	{
		$socnet_role = "A";
	}

	if ($socnet_role !== "A" && CIBlock::GetArrayByID($iblock_id, "RIGHTS_MODE") === "E")
	{
		return '0';
	}

	static $roles = array("A", "E", "K", "T");
	if(!in_array($socnet_role, $roles))
	{
		if($USER->IsAuthorized())
			$socnet_role = "L";
		else
			$socnet_role = "N";
	}

	if (!CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $socnet_group_id, "group_lists", "write", CSocNetUser::IsCurrentUserModuleAdmin()))
	{
		return "D";
	}
	else
	{
		$arSocnetPerm = CLists::GetSocnetPermission($iblock_id);
		return $arSocnetPerm[$socnet_role];
	}
}