- Модуль: 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];
}
}