• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/classes/general/lists.php
  • Класс: CLists
  • Вызов: CLists::GetIBlockPermission
static function GetIBlockPermission($iblock_id, $user_id)
{
	global $USER;

	//IBlock permissions by default
	$Permission = CIBlock::GetPermission($iblock_id, $user_id);
	if($Permission < "W")
	{
		$arIBlock = CIBlock::GetArrayByID($iblock_id);
		if($arIBlock)
		{
			//Check if iblock is list
			$arListsPerm = CLists::GetPermission($arIBlock["IBLOCK_TYPE_ID"]);
			if (is_array($arListsPerm) && count($arListsPerm) > 0)
			{
				//User groups
				if($user_id == $USER->GetID())
					$arUserGroups = $USER->GetUserGroupArray();
				else
					$arUserGroups = $USER->GetUserGroup($user_id);

				//One of lists admins
				if(count(array_intersect($arListsPerm, $arUserGroups)))
					$Permission = "X";
			}
		}
	}

	if(
		$Permission < "W"
		&& $arIBlock["SOCNET_GROUP_ID"]
		&& CModule::IncludeModule('socialnetwork')
	)
	{
		$arSocnetPerm = CLists::GetSocnetPermission($iblock_id);
		$socnet_role = CSocNetUserToGroup::GetUserRole($USER->GetID(), $arIBlock["SOCNET_GROUP_ID"]);
		$Permission = $arSocnetPerm[$socnet_role];
	}
	return $Permission;
}