protected static 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 ($socnet_role !== "A" && CIBlock::GetArrayByID($iblock_id, "RIGHTS_MODE") === "E") { return ''; } static $roles = array("A", "E", "K", "T"); if (!in_array($socnet_role, $roles)) { if ($USER->IsAuthorized()) { $socnet_role = "L"; } else { $socnet_role = "N"; } } $arSocnetPerm = CLists::GetSocnetPermission($iblock_id); return $arSocnetPerm[$socnet_role]; }
/** * @param $USER CUser * @param $iblock_type_id string * @param $iblock_id int * @param $socnet_group_id int * @return string */ protected static 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 ($socnet_role !== "A" && CIBlock::GetArrayByID($iblock_id, "RIGHTS_MODE") === "E") { return ''; } 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]; } }