public function canRead($userId) { if (!Loader::includeModule("iblock")) { return false; } $iblockId = $this->entityId; return \CIBlockRights::userHasRightTo($iblockId, $iblockId, "element_read") || \CIBlockSectionRights::userHasRightTo($iblockId, 0, "section_element_bind"); }
function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu) { global $USER; if (!CModule::IncludeModule("iblock")) { return; } //When UnRegisterModuleDependences is called from module uninstall //cached EventHandlers may be called if (defined("BX_CATALOG_UNINSTALLED")) { return; } $aMenu = array("text" => GetMessage("CAT_MENU_ROOT"), "title" => "", "items_id" => "menu_catalog_list", "items" => array()); $arCatalogs = array(); $rsCatalog = CCatalog::GetList(array("sort" => "asc")); while ($ar = $rsCatalog->Fetch()) { if ($ar["PRODUCT_IBLOCK_ID"]) { $arCatalogs[$ar["PRODUCT_IBLOCK_ID"]] = 1; } else { $arCatalogs[$ar["IBLOCK_ID"]] = 1; } } $rsIBlocks = CIBlock::GetList(array("SORT" => "asc", "NAME" => "ASC"), array("MIN_PERMISSION" => "U")); while ($arIBlock = $rsIBlocks->Fetch()) { if (array_key_exists($arIBlock["ID"], $arCatalogs)) { $arItems = array(array("text" => GetMessage("CAT_MENU_PRODUCT_LIST"), "url" => "cat_product_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . urlencode($arIBlock["IBLOCK_TYPE_ID"]), "more_url" => array("cat_product_admin.php?IBLOCK_ID=" . $arIBlock["ID"], "cat_product_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_elements", "items_id" => "menu_catalog_goods_" . $arIBlock["ID"], "module_id" => "catalog"), array("text" => htmlspecialcharsex(CIBlock::GetArrayByID($arIBlock["ID"], "SECTIONS_NAME")), "url" => "cat_section_admin.php?lang=" . LANGUAGE_ID . "&type=" . $arIBlock["IBLOCK_TYPE_ID"] . "&IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "more_url" => array("cat_section_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "cat_section_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0"), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_category_" . $arIBlock["ID"], "module_id" => "catalog", "items" => CCatalogAdmin::get_sections_menu($arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], 1, 0))); if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_PRODUCT_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arIBlock["ID"], "module_id" => "catalog"); } $arCatalog = false; if (CModule::IncludeModule("catalog")) { $arCatalog = CCatalog::GetSkuInfoByProductID($arIBlock["ID"]); } if (is_array($arCatalog) && CIBlockRights::UserHasRightTo($arCatalog["IBLOCK_ID"], $arCatalog["IBLOCK_ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_SKU_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arCatalog["IBLOCK_ID"], "module_id" => "catalog"); } if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_CATALOG_SETTINGS"), "url" => "cat_catalog_edit.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"], "more_url" => array("cat_catalog_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_edit_" . $arIBlock["ID"], "module_id" => "catalog"); } $aMenu["items"][] = array("text" => htmlspecialcharsEx($arIBlock["NAME"]), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_" . $arIBlock["ID"], "module_id" => "catalog", "items" => $arItems); } } if (!empty($aMenu["items"])) { if (count($aMenu["items"]) == 1) { $aMenu = $aMenu["items"][0]; } $aMenu["parent_menu"] = "global_menu_store"; $aMenu["section"] = "catalog_list"; $aMenu["sort"] = 200; $aMenu["icon"] = "iblock_menu_icon_sections"; $aMenu["page_icon"] = "iblock_page_icon_types"; $aModuleMenu[] = $aMenu; } }
public static function CheckIBlockOperation($intIBlockID, $strOperation, $strAccess) { $intIBlockID = intval($intIBlockID); if ($intIBlockID <= 0) { return false; } if (!self::$boolCheck) { self::CheckExtRights(); } if (self::$boolExtRights) { return CIBlockRights::UserHasRightTo($intIBlockID, $intIBlockID, $strOperation); } else { return CIBlock::GetPermission($intIBlockID) >= $strAccess; } }
public function executeComponent() { global $USER, $APPLICATION; $this->setFrameMode(false); if (!CModule::IncludeModule('lists')) { ShowError(Loc::getMessage("CC_BLL_MODULE_NOT_INSTALLED")); return; } $this->arResult["BIZPROC"] = (bool) CModule::includeModule("bizproc"); $this->arResult["DISK"] = (bool) CModule::includeModule("disk"); $this->listsPerm = CListPermissions::CheckAccess($USER, $this->arParams["~IBLOCK_TYPE_ID"], $this->arResult["IBLOCK_ID"], $this->arParams["~SOCNET_GROUP_ID"]); if ($this->listsPerm < 0) { switch ($this->listsPerm) { case CListPermissions::WRONG_IBLOCK_TYPE: ShowError(GetMessage("CC_BLL_WRONG_IBLOCK_TYPE")); return; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CC_BLL_WRONG_IBLOCK")); return; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: ShowError(GetMessage("CC_BLL_LISTS_FOR_SONET_GROUP_DISABLED")); return; default: ShowError(GetMessage("CC_BLL_UNKNOWN_ERROR")); return; } } elseif ($this->listsPerm < CListPermissions::CAN_READ && !(CIBlockRights::UserHasRightTo($this->arResult["IBLOCK_ID"], $this->arResult["IBLOCK_ID"], "element_read") || CIBlockSectionRights::UserHasRightTo($this->arResult["IBLOCK_ID"], $this->arResult["SECTION_ID"], "section_element_bind"))) { ShowError(GetMessage("CC_BLL_ACCESS_DENIED")); return; } if (!(!$this->arResult["IS_SOCNET_GROUP_CLOSED"] && ($this->listsPerm > CListPermissions::CAN_READ || CIBlockSectionRights::UserHasRightTo($this->arResult["IBLOCK_ID"], $this->arResult["SECTION_ID"], "element_read") || CIBlockSectionRights::UserHasRightTo($this->arResult["IBLOCK_ID"], $this->arResult["SECTION_ID"], "section_element_bind")))) { ShowError(GetMessage("CC_BLL_ACCESS_DENIED")); return; } $this->createDataExcel(); $APPLICATION->RestartBuffer(); header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: filename=list_" . $this->arIBlock["ID"] . ".xls"); $this->IncludeComponentTemplate(); $r = $APPLICATION->EndBufferContentMan(); echo $r; include $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php"; die; }
protected function checkPermission() { global $USER; $this->listPerm = CListPermissions::checkAccess($USER, $this->iblockTypeId, $this->iblockId, $this->socnetGroupId); if ($this->listPerm < 0) { switch ($this->listPerm) { case CListPermissions::WRONG_IBLOCK_TYPE: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_WRONG_IBLOCK_TYPE')))); break; case CListPermissions::WRONG_IBLOCK: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_WRONG_IBLOCK')))); break; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_SONET_GROUP_DISABLED')))); break; default: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_UNKNOWN_ERROR')))); break; } } elseif ($this->listPerm < CListPermissions::CAN_READ && !(CIBlockRights::userHasRightTo($this->iblockId, $this->iblockId, "element_read") || CIBlockSectionRights::userHasRightTo($this->iblockId, $this->sectionId, "section_element_bind"))) { $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_ACCESS_DENIED')))); } }
/** * @param $documentType * @param bool $withExtended * @return array|bool */ public function GetAllowableUserGroups($documentType, $withExtended = false) { $documentType = trim($documentType); if (strlen($documentType) <= 0) { return false; } $iblockId = intval(substr($documentType, strlen("iblock_"))); $result = array("Author" => GetMessage("IBD_DOCUMENT_AUTHOR")); $groupsId = array(1); $extendedGroupsCode = array(); if (CIBlock::getArrayByID($iblockId, "RIGHTS_MODE") === "E") { $rights = new CIBlockRights($iblockId); foreach ($rights->getGroups() as $iblockGroupCode) { if (preg_match("/^G(\\d+)\$/", $iblockGroupCode, $match)) { $groupsId[] = $match[1]; } else { $extendedGroupsCode[] = $iblockGroupCode; } } } else { foreach (CIBlock::getGroupPermissions($iblockId) as $groupId => $perm) { if ($perm > "R") { $groupsId[] = $groupId; } } } $groupsIterator = CGroup::getListEx(array("NAME" => "ASC"), array("ID" => $groupsId)); while ($group = $groupsIterator->fetch()) { $result[$group["ID"]] = $group["NAME"]; } if ($withExtended && $extendedGroupsCode) { foreach ($extendedGroupsCode as $groupCode) { $result['group_' . $groupCode] = CBPHelper::getExtendedGroupName($groupCode); } } return $result; }
$intIBlockID = false; if (isset($_REQUEST["PARAMS"]['IBLOCK_ID'])) { $intIBlockID = (int) $_REQUEST["PARAMS"]['IBLOCK_ID']; } elseif (isset($_REQUEST["IBLOCK_ID"])) { $intIBlockID = (int) $_REQUEST["IBLOCK_ID"]; } if ($intIBlockID < 0 || $intIBlockID === false) { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ShowError(GetMessage("BT_ADM_IEP_IBLOCK_ID_IS_INVALID")); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } elseif ($intIBlockID > 0) { $rsIBlocks = CIBlock::GetList(array(), array("ID" => $intIBlockID, "CHECK_PERMISSIONS" => "N")); $arIBlock = $rsIBlocks->Fetch(); if ($arIBlock) { if (!CIBlockRights::UserHasRightTo($intIBlockID, $intIBlockID, "iblock_edit")) { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } } else { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ShowError(str_replace('#ID#', $intIBlockID, GetMessage("BT_ADM_IEP_IBLOCK_NOT_EXISTS"))); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } } if (isset($_REQUEST["PARAMS"]['ID'])) { $str_PROPERTY_ID = htmlspecialcharsbx($_REQUEST["PARAMS"]['ID']); } elseif (isset($_REQUEST['ID'])) {
die; } $boolOffers = false; $arOffers = false; $arOfferIBlock = false; $intOfferIBlockID = 0; $arSelectOfferProps = array(); $arSelectedPropTypes = array('S', 'N', 'L', 'E', 'G'); $arOffersSelectKeys = array(YANDEX_SKU_EXPORT_ALL, YANDEX_SKU_EXPORT_MIN_PRICE, YANDEX_SKU_EXPORT_PROP); $arOffers = CCatalogSKU::GetInfoByProductIBlock($intIBlockID); if (!empty($arOffers['IBLOCK_ID'])) { $intOfferIBlockID = $arOffers['IBLOCK_ID']; $strPerm = 'D'; $rsOfferIBlocks = CIBlock::GetByID($intOfferIBlockID); if ($arOfferIBlock = $rsOfferIBlocks->Fetch()) { $bBadBlock = !CIBlockRights::UserHasRightTo($intOfferIBlockID, $intOfferIBlockID, "iblock_admin_display"); if ($bBadBlock) { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; echo ShowError(GetMessage('YANDEX_ERR_NO_ACCESS_IBLOCK_SKU')); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } } else { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; echo ShowError(str_replace('#ID#', $intIBlockID, GetMessage("YANDEX_ERR_NO_IBLOCK_SKU_FOUND"))); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } $boolOffers = true; } $arCondSelectProp = array('ZERO' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_ZERO'), 'NONZERO' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_NONZERO'), 'EQUAL' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_EQUAL'), 'NONEQUAL' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_NONEQUAL'));
die; } if (preg_match('/^[a-z0-9_]{2}$/i', $_REQUEST['site'])) { define('SITE_ID', $_REQUEST['site']); } } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; Loc::loadMessages(__FILE__); global $APPLICATION; if (!CModule::IncludeModule('iblock')) { echo Loc::getMessage("BT_COMP_MLI_AJAX_ERR_MODULE_ABSENT"); die; } CUtil::JSPostUnescape(); $IBlockID = intval($_REQUEST["IBLOCK_ID"]); if (!CIBlockRights::UserHasRightTo($IBlockID, $IBlockID, "iblock_admin_display")) { echo Loc::getMessage('BT_COMP_MLI_AJAX_ERR_IBLOCK_ACCESS_DENIED'); die; } $arIBlock = CIBlock::GetArrayByID($IBlockID); $strBanSym = trim($_REQUEST['BAN_SYM']); $arBanSym = str_split($strBanSym, 1); $strRepSym = trim($_REQUEST['REP_SYM']); $arRepSym = array_fill(0, sizeof($arBanSym), $strRepSym); $bSection = false; if (isset($_REQUEST['TYPE']) && 'SECTION' == $_REQUEST['TYPE']) { $bSection = true; } if ($_REQUEST['MODE'] == 'SEARCH') { $APPLICATION->RestartBuffer(); $arResult = array();
CUtil::JSPostUnescape(); $iblock_id = intval($_REQUEST["IBLOCK_ID"]); $lists_perm = CListPermissions::CheckAccess($USER, $_REQUEST["IBLOCK_TYPE_ID"], $iblock_id, $_REQUEST["SOCNET_GROUP_ID"]); if ($lists_perm < 0) { switch ($lists_perm) { case CListPermissions::WRONG_IBLOCK_TYPE: ShowError(GetMessage("CT_BMTS_WRONG_IBLOCK_TYPE")); die; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CT_BMTS_WRONG_IBLOCK")); die; default: ShowError(GetMessage("CT_BMTS_UNKNOWN_ERROR")); die; } } elseif ($lists_perm < CListPermissions::CAN_READ && !CIBlockRights::UserHasRightTo($iblock_id, $iblock_id, "element_read")) { ShowError(GetMessage("CT_BMTS_ACCESS_DENIED")); die; } $arIBlock = CIBlock::GetArrayByID($iblock_id); if ($_REQUEST['MODE'] == 'section') { $arResult = array(); $SECTION_ID = intval($_REQUEST['SECTION_ID']); //if($SECTION_ID == 0) // $SECTION_ID = false; $rsElements = CIBlockElement::GetList(array('ID' => 'ASC'), array('IBLOCK_ID' => $arIBlock["ID"], 'SECTION_ID' => $SECTION_ID, 'CHECK_PERMISSIONS' => $arParams['CAN_EDIT'] ? 'N' : 'Y'), false, false, array("ID", "NAME", "IBLOCK_SECTION_ID")); while ($arElement = $rsElements->Fetch()) { $arResult[] = array("ID" => $arElement["ID"], "NAME" => $arElement["NAME"], "SECTION_ID" => $arElement["IBLOCK_SECTION_ID"], "CONTENT" => '<div class="mts-name">' . htmlspecialcharsex($arElement["NAME"]) . '</div>'); } $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET);
public function GetAllowableUserGroups($documentType) { $documentType = trim($documentType); if (strlen($documentType) <= 0) { return false; } $iblockId = intval(substr($documentType, strlen("iblock_"))); $arResult = array("Author" => GetMessage("IBD_DOCUMENT_AUTHOR")); $arRes = array(1); if (CIBlock::GetArrayByID($iblockId, "RIGHTS_MODE") === "E") { $obRights = new CIBlockRights($iblockId); foreach ($obRights->GetGroups() as $GROUP_CODE) { if (preg_match("/^G(\\d+)\$/", $GROUP_CODE, $match)) { $arRes[] = $match[1]; } } } else { foreach (CIBlock::GetGroupPermissions($iblockId) as $groupId => $perm) { if ($perm > "R") { $arRes[] = $groupId; } } } $dbGroupsList = CGroup::GetListEx(array("NAME" => "ASC"), array("ID" => $arRes)); while ($arGroup = $dbGroupsList->Fetch()) { $arResult[$arGroup["ID"]] = $arGroup["NAME"]; } return $arResult; }
if (preg_match("/^G(\\d)\$/", $arRight["GROUP_CODE"], $match) && is_array($arListsPerm) && in_array($match[1], $arListsPerm)) { unset($arResult["RIGHTS"][$RIGHT_ID]); $arResult["SELECTED"][$arRight["GROUP_CODE"]] = true; } else { //2) protect groups with iblock_% operations $arOperations = CTask::GetOperations($arRight['TASK_ID'], true); foreach ($arOperations as $operation) { if (preg_match("/^iblock_(?!admin)/", $operation)) { unset($arResult["RIGHTS"][$RIGHT_ID]); $arResult["SELECTED"][$arRight["GROUP_CODE"]] = true; break; } } } } $arResult["TASKS"] = CIBlockRights::GetRightsList(); foreach ($arResult["TASKS"] as $TASK_ID => $label) { //2) protect tasks with iblock_% operations $arOperations = CTask::GetOperations($TASK_ID, true); foreach ($arOperations as $operation) { if (preg_match("/^iblock_(?!admin)/", $operation)) { unset($arResult["TASKS"][$TASK_ID]); break; } } } } $arResult["VARS_FROM_FORM"] = $bVarsFromForm; $arResult["FORM_DATA"] = array(); foreach ($data as $key => $value) { $arResult["FORM_DATA"]["~" . $key] = $value;
BX.WindowManager.Get().Close(); if(window.reloadAfterClose) top.BX.reload(true); } }"; $tabControl->ButtonsPublic(array( '.btnSave', ($ID > 0 && $bWorkflow? $wfClose: $cancel), $save_and_add, )); endif; $tabControl->Show(); if ( (!defined('BX_PUBLIC_MODE') || BX_PUBLIC_MODE != 1) && CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit") && !$bAutocomplete ) { echo BeginNote(), GetMessage("IBEL_E_IBLOCK_MANAGE_HINT"), ' <a href="/bitrix/admin/iblock_edit.php?type='.htmlspecialcharsbx($type).'&lang='.LANGUAGE_ID.'&ID='.$IBLOCK_ID.'&admin=Y&return_url='.urlencode("/bitrix/admin/".CIBlock::GetAdminElementEditLink($IBLOCK_ID, $ID, array("WF" => ($WF=="Y"? "Y": null), "find_section_section" => intval($find_section_section), "return_url" => (strlen($return_url)>0? $return_url: null)))).'">', GetMessage("IBEL_E_IBLOCK_MANAGE_HINT_HREF"), '</a>', EndNote() ; } ////////////////////////// //END of the custom form
public static function ReSort($IBLOCK_ID, $ID = 0, $cnt = 0, $depth = 0, $ACTIVE = "Y") { $cnt = self::TreeReSort($IBLOCK_ID, $ID, $cnt, $depth, $ACTIVE); $obIBlockRights = new CIBlockRights($IBLOCK_ID); $obIBlockRights->Recalculate(); return $cnt; }
if (is_array($arCatalog)) { $arPropLinks = CIBlockSectionPropertyLink::GetArray($arCatalog["IBLOCK_ID"], 0); ?> <tr colspan="2" class="heading"> <td align="center"><?echo GetMessage("CAT_CEDIT_PROP_SKU_SECTION");?></td> </tr> <tr colspan="2"><td align="center"> <table class="internal" id="table_SKU_SECTION_PROPERTY"> <tr class="heading"> <td><?echo GetMessage("CAT_CEDIT_PROP_TABLE_NAME");?></td> <td><?echo GetMessage("CAT_CEDIT_PROP_TABLE_TYPE");?></td> <td><?echo GetMessage("CAT_CEDIT_PROP_TABLE_SMART_FILTER");?></td> <td><?echo GetMessage("CAT_CEDIT_PROP_TABLE_ACTION");?></td></tr> <? if(CIBlockRights::UserHasRightTo($arCatalog["IBLOCK_ID"], $arCatalog["IBLOCK_ID"], "iblock_edit")) $arShadow = $arHidden = array( -1 => GetMessage("CAT_CEDIT_PROP_SELECT_CHOOSE"), 0 => GetMessage("CAT_CEDIT_PROP_SELECT_CREATE"), ); else $arShadow = $arHidden = array( -1 => GetMessage("CAT_CEDIT_PROP_SELECT_CHOOSE"), ); $rsProps = CIBlockProperty::GetList(array( "SORT"=>"ASC", 'ID' => 'ASC', ), array( "IBLOCK_ID" => $arCatalog["IBLOCK_ID"], "CHECK_PERMISSIONS" => "N",
<?php /** @global CMain $APPLICATION */ /** @global CDatabase $DB */ use Bitrix\Main\Loader, Bitrix\Main, Bitrix\Iblock; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; Loader::includeModule('iblock'); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/prolog.php"; IncludeModuleLangFile(__FILE__); $arIBlock = CIBlock::GetArrayByID($_GET["IBLOCK_ID"]); if (!is_array($arIBlock)) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } if (!CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $simpleTypeList = array(Iblock\PropertyTable::TYPE_STRING => true, Iblock\PropertyTable::TYPE_NUMBER => true, Iblock\PropertyTable::TYPE_LIST => true, Iblock\PropertyTable::TYPE_FILE => true, Iblock\PropertyTable::TYPE_SECTION => true, Iblock\PropertyTable::TYPE_ELEMENT => true); $sTableID = "tbl_iblock_property_admin_" . $arIBlock["ID"]; $oSort = new CAdminSorting($sTableID, 'SORT', 'ASC'); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = array("find_name", "find_code", "find_active", "find_searchable", "find_filtrable", "find_is_required", "find_multiple", "find_xml_id", "find_property_type"); $lAdmin->InitFilter($arFilterFields); $arFilter = array("=IBLOCK_ID" => $arIBlock["ID"], "?NAME" => $find_name, "?CODE" => $find_code, "=ACTIVE" => $find_active, "=SEARCHABLE" => $find_searchable, "=FILTRABLE" => $find_filtrable, "=XML_ID" => $find_xml_id, "=PROPERTY_TYPE" => $find_property_type, "=IS_REQUIRED" => $find_is_required, "=MULTIPLE" => $find_multiple); foreach ($arFilter as $key => $value) { if (!strlen(trim($value))) { unset($arFilter[$key]); } } if (isset($arFilter['=PROPERTY_TYPE'])) { if (!isset($simpleTypeList[$arFilter['=PROPERTY_TYPE']])) { list($arFilter['=PROPERTY_TYPE'], $arFilter['=USER_TYPE']) = explode(':', $arFilter['=PROPERTY_TYPE'], 2);
return; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CC_BLL_WRONG_IBLOCK")); return; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: ShowError(GetMessage("CC_BLL_LISTS_FOR_SONET_GROUP_DISABLED")); return; default: ShowError(GetMessage("CC_BLL_UNKNOWN_ERROR")); return; } } elseif ($lists_perm < CListPermissions::CAN_READ && !(CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "element_read") || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $section_id, "section_element_bind"))) { ShowError(GetMessage("CC_BLL_ACCESS_DENIED")); return; } $arParams["CAN_EDIT"] = !$arResult["IS_SOCNET_GROUP_CLOSED"] && ($lists_perm >= CListPermissions::IS_ADMIN || CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit")); $arResult["CAN_ADD_ELEMENT"] = !$arResult["IS_SOCNET_GROUP_CLOSED"] && ($lists_perm > CListPermissions::CAN_READ || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $section_id, "section_element_bind")); $arResult["CAN_READ"] = !$arResult["IS_SOCNET_GROUP_CLOSED"] && ($lists_perm > CListPermissions::CAN_READ || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $section_id, "element_read")); $arResult["CAN_EDIT_SECTIONS"] = !$arResult["IS_SOCNET_GROUP_CLOSED"] && ($lists_perm >= CListPermissions::CAN_WRITE || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $section_id, "section_edit") || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $section_id, "section_section_bind")); $arResult["IBLOCK_PERM"] = $lists_perm; $arResult["USER_GROUPS"] = $USER->GetUserGroupArray(); $arIBlock = CIBlock::GetArrayByID(intval($arParams["~IBLOCK_ID"])); $arResult["~IBLOCK"] = $arIBlock; $arResult["IBLOCK"] = htmlspecialcharsex($arIBlock); $arResult["IBLOCK_ID"] = $arIBlock["ID"]; $arResult["PROCESSES"] = false; $arResult["USE_COMMENTS"] = false; $arResult["RAND_STRING"] = $this->randString(); if ($arParams["IBLOCK_TYPE_ID"] == COption::GetOptionString("lists", "livefeed_iblock_type_id")) { $arResult["USE_COMMENTS"] = (bool) CModule::includeModule("forum"); $arResult["PROCESSES"] = true;
/** * <p>Функция удаляет информационный блок.</p> * * * * * @param int $ID Код информационного блока. * * * * @return bool <a href="http://dev.1c-bitrix.ru/api_help/iblock/events/onbeforeiblockdelete.php">OnBeforeIBlockDelete</a><a * name="examples"></a> * * * <h4>Example</h4> * <pre> * <?<br>if($USER->IsAdmin())<br>{<br> $DB->StartTransaction();<br> if(!CIBlock::Delete($iblock_id))<br> {<br> $strWarning .= GetMessage("IBLOCK_DELETE_ERROR");<br> $DB->Rollback();<br> }<br> else<br> $DB->Commit();<br>}<br>?><br> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/delete.php * @author Bitrix */ public static function Delete($ID) { $err_mess = "FILE: " . __FILE__ . "<br>LINE: "; /** @global CDatabase $DB */ global $DB; /** @global CMain $APPLICATION */ global $APPLICATION; /** @global CUserTypeManager $USER_FIELD_MANAGER */ global $USER_FIELD_MANAGER; /** @global CCacheManager $CACHE_MANAGER */ global $CACHE_MANAGER; $ID = IntVal($ID); $APPLICATION->ResetException(); foreach (GetModuleEvents("iblock", "OnBeforeIBlockDelete", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { $err = GetMessage("MAIN_BEFORE_DEL_ERR") . ' ' . $arEvent['TO_NAME']; $ex = $APPLICATION->GetException(); if (is_object($ex)) { $err .= ': ' . $ex->GetString(); } $APPLICATION->throwException($err); return false; } } foreach (GetModuleEvents("iblock", "OnIBlockDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID)); } $iblockSections = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $ID, "DEPTH_LEVEL" => 1, "CHECK_PERMISSIONS" => "N"), false, array("ID")); while ($iblockSection = $iblockSections->Fetch()) { if (!CIBlockSection::Delete($iblockSection["ID"], false)) { return false; } } $iblockElements = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $ID, "SHOW_NEW" => "Y", "CHECK_PERMISSIONS" => "N"), false, false, array("IBLOCK_ID", "ID")); while ($iblockElement = $iblockElements->Fetch()) { if (!CIBlockElement::Delete($iblockElement["ID"])) { return false; } } $props = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $ID, "CHECK_PERMISSIONS" => "N")); while ($property = $props->Fetch()) { if (!CIBlockProperty::Delete($property["ID"])) { return false; } } $seq = new CIBlockSequence($ID); $seq->Drop(true); $obIBlockRights = new CIBlockRights($ID); $obIBlockRights->DeleteAllRights(); CIBlockSectionPropertyLink::DeleteByIBlock($ID); $DB->Query("delete from b_iblock_offers_tmp where PRODUCT_IBLOCK_ID=" . $ID, false, $err_mess . __LINE__); $DB->Query("delete from b_iblock_offers_tmp where OFFERS_IBLOCK_ID=" . $ID, false, $err_mess . __LINE__); if (!$DB->Query("DELETE FROM b_iblock_messages WHERE IBLOCK_ID = " . $ID, false, $err_mess . __LINE__)) { return false; } if (!$DB->Query("DELETE FROM b_iblock_fields WHERE IBLOCK_ID = " . $ID, false, $err_mess . __LINE__)) { return false; } $USER_FIELD_MANAGER->OnEntityDelete("IBLOCK_" . $ID . "_SECTION"); if (!$DB->Query("DELETE FROM b_iblock_group WHERE IBLOCK_ID=" . $ID, false, $err_mess . __LINE__)) { return false; } if (!$DB->Query("DELETE FROM b_iblock_rss WHERE IBLOCK_ID=" . $ID, false, $err_mess . __LINE__)) { return false; } if (!$DB->Query("DELETE FROM b_iblock_site WHERE IBLOCK_ID=" . $ID, false, $err_mess . __LINE__)) { return false; } if (!$DB->Query("DELETE FROM b_iblock WHERE ID=" . $ID, false, $err_mess . __LINE__)) { return false; } $DB->Query("DROP TABLE b_iblock_element_prop_s" . $ID, true, $err_mess . __LINE__); $DB->Query("DROP TABLE b_iblock_element_prop_m" . $ID, true, $err_mess . __LINE__); $DB->Query("DROP SEQUENCE sq_b_iblock_element_prop_m" . $ID, true, $err_mess . __LINE__); CIBlock::CleanCache($ID); if (defined("BX_COMP_MANAGED_CACHE")) { $CACHE_MANAGER->ClearByTag("iblock_id_" . $ID); } $_SESSION["SESS_RECOUNT_DB"] = "Y"; return true; }
protected function checkIblockAccess() { if (!$this->checkPermissions) { return true; } $id = $this->getIblockId(); $error = ''; if ($id) { if (!\CIBlockRights::UserHasRightTo($id, $id, "element_read")) { $error = Loc::getMessage("SPS_NO_PERMS"); } } else { $error = Loc::getMessage("SPS_NO_CATALOGS"); } if ($error) { $this->arResult['ERROR'] = $error; $this->arResult['IS_EXTERNALCONTEXT'] = $this->isExternalContext(); $this->includeComponentTemplate('error'); exit; } }
function ReSort($IBLOCK_ID, $ID = 0, $cnt = 0, $depth = 0, $ACTIVE = "Y") { global $DB; $IBLOCK_ID = IntVal($IBLOCK_ID); if ($ID > 0) { $DB->Query("\n\t\t\t\tUPDATE\n\t\t\t\t\tb_iblock_section\n\t\t\t\tSET\n\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t,RIGHT_MARGIN=" . IntVal($cnt) . "\n\t\t\t\t\t,LEFT_MARGIN=" . IntVal($cnt) . "\n\t\t\t\tWHERE\n\t\t\t\t\tID=" . IntVal($ID)); } $strSql = "\n\t\t\tSELECT BS.ID, BS.ACTIVE\n\t\t\tFROM b_iblock_section BS\n\t\t\tWHERE BS.IBLOCK_ID = " . $IBLOCK_ID . "\n\t\t\tAND " . ($ID > 0 ? "BS.IBLOCK_SECTION_ID=" . IntVal($ID) : "BS.IBLOCK_SECTION_ID IS NULL") . "\n\t\t\tORDER BY BS.SORT, BS.NAME\n\t\t"; $cnt++; $res = $DB->Query($strSql); while ($arr = $res->Fetch()) { $cnt = CIBlockSection::ReSort($IBLOCK_ID, $arr["ID"], $cnt, $depth + 1, $ACTIVE == "Y" && $arr["ACTIVE"] == "Y" ? "Y" : "N"); } if ($ID == 0) { $obIBlockRights = new CIBlockRights($IBLOCK_ID); $obIBlockRights->Recalculate(); return true; } $DB->Query("\n\t\t\tUPDATE\n\t\t\t\tb_iblock_section\n\t\t\tSET\n\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t,RIGHT_MARGIN=" . IntVal($cnt) . "\n\t\t\t\t,DEPTH_LEVEL=" . IntVal($depth) . "\n\t\t\t\t,GLOBAL_ACTIVE='" . $ACTIVE . "'\n\t\t\tWHERE\n\t\t\t\tID=" . IntVal($ID)); return $cnt + 1; }
} $oFilter->Buttons(); ?><input class="adm-btn" type="submit" name="set_filter" value="<? echo GetMessage("admin_lib_filter_set_butt"); ?>" title="<? echo GetMessage("admin_lib_filter_set_butt_title"); ?>" onClick="return applyFilter(this);"> <input class="adm-btn" type="submit" name="del_filter" value="<? echo GetMessage("admin_lib_filter_clear_butt"); ?>" title="<? echo GetMessage("admin_lib_filter_clear_butt_title"); ?>" onClick="deleteFilter(this); return false;"> <? $oFilter->End(); ?> </form> <? $lAdmin->DisplayList(); if($bWorkFlow || $bBizproc): echo BeginNote();?> <span class="adm-lamp adm-lamp-green"></span> - <?echo GetMessage("IBLIST_A_GREEN_ALT")?></br> <span class="adm-lamp adm-lamp-yellow"></span> - <?echo GetMessage("IBLIST_A_YELLOW_ALT")?></br> <span class="adm-lamp adm-lamp-red"></span> - <?echo GetMessage("IBLIST_A_RED_ALT")?></br> <?echo EndNote(); endif; if(CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit") && !defined("CATALOG_PRODUCT")) { echo BeginNote(), GetMessage("IBLIST_A_IBLOCK_MANAGE_HINT"), ' <a href="'.htmlspecialcharsbx('iblock_edit.php?type='.urlencode($type).'&lang='.LANGUAGE_ID.'&ID='.$IBLOCK_ID.'&admin=Y&return_url='.urlencode("iblock_list_admin.php?".$sThisSectionUrl)).'">', GetMessage("IBLIST_A_IBLOCK_MANAGE_HINT_HREF"), '</a>', EndNote() ; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>
if (!Is_Array($arParams["USERGROUPS_MODIFY"])) { if (IntVal($arParams["USERGROUPS_MODIFY"]) > 0) { $arParams["USERGROUPS_MODIFY"] = array($arParams["USERGROUPS_MODIFY"]); } else { $arParams["USERGROUPS_MODIFY"] = array(); } } if (!Is_Array($arParams["USERGROUPS_RESERVE"])) { if (IntVal($arParams["USERGROUPS_RESERVE"]) > 0) { $arParams["USERGROUPS_RESERVE"] = array($arParams["USERGROUPS_RESERVE"]); } else { $arParams["USERGROUPS_RESERVE"] = array(); } } $arResult["FatalError"] = ""; if (!CIBlockRights::UserHasRightTo($iblockId, $iblockId, 'element_read')) { $arResult["FatalError"] .= GetMessage("INTS_NO_IBLOCK_PERMS") . "."; } if (StrLen($arResult["FatalError"]) <= 0) { $deleteMeetingId = IntVal($_REQUEST["delete_meeting_id"]); if ($deleteMeetingId > 0 && check_bitrix_sessid() && $GLOBALS["USER"]->IsAuthorized() && ($GLOBALS["USER"]->IsAdmin() || Count(Array_Intersect($GLOBALS["USER"]->GetUserGroupArray(), $arParams["USERGROUPS_MODIFY"])) > 0)) { $dbMeetingsList = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $iblockId, "ID" => $deleteMeetingId)); if ($arMeeting = $dbMeetingsList->Fetch()) { CIBlockSection::Delete($arMeeting["ID"]); } } } $arResult["ALLOWED_FIELDS"] = array("ID" => array("NAME" => GetMessage("INAF_F_ID"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "int", "IS_FIELD" => true), "NAME" => array("NAME" => GetMessage("INAF_F_NAME"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "string", "IS_FIELD" => true), "DESCRIPTION" => array("NAME" => GetMessage("INAF_F_DESCRIPTION"), "ORDERABLE" => false, "FILTERABLE" => false, "TYPE" => "text", "IS_FIELD" => true), "UF_FLOOR" => array("NAME" => GetMessage("INAF_F_FLOOR"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "integer", "IS_FIELD" => false), "UF_PLACE" => array("NAME" => GetMessage("INAF_F_PLACE"), "ORDERABLE" => true, "FILTERABLE" => true, "TYPE" => "integer", "IS_FIELD" => false), "UF_PHONE" => array("NAME" => GetMessage("INAF_F_PHONE"), "ORDERABLE" => false, "FILTERABLE" => false, "TYPE" => "string", "IS_FIELD" => false)); $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_" . $iblockId . "_SECTION", 0, LANGUAGE_ID); $arKeys = Array_Keys($arResult["ALLOWED_FIELDS"]); foreach ($arKeys as $key) {
return; case CListPermissions::WRONG_IBLOCK: ShowError(GetMessage("CC_BLF_WRONG_IBLOCK")); return; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: ShowError(GetMessage("CC_BLF_LISTS_FOR_SONET_GROUP_DISABLED")); return; default: ShowError(GetMessage("CC_BLF_UNKNOWN_ERROR")); return; } } elseif ($arParams["~IBLOCK_ID"] > 0 && $lists_perm < CListPermissions::IS_ADMIN && !CIBlockRights::UserHasRightTo($arParams["~IBLOCK_ID"], $arParams["~IBLOCK_ID"], "iblock_edit") || $arParams["~IBLOCK_ID"] == 0 && $lists_perm < CListPermissions::IS_ADMIN) { ShowError(GetMessage("CC_BLF_ACCESS_DENIED")); return; } $arParams["CAN_EDIT"] = $lists_perm >= CListPermissions::IS_ADMIN || $arParams["~IBLOCK_ID"] > 0 && CIBlockRights::UserHasRightTo($arParams["~IBLOCK_ID"], $arParams["~IBLOCK_ID"], "iblock_edit"); $arIBlock = CIBlock::GetArrayByID(intval($arParams["~IBLOCK_ID"])); $arResult["~IBLOCK"] = $arIBlock; $arResult["IBLOCK"] = htmlspecialcharsex($arIBlock); $arResult["IBLOCK_ID"] = $arIBlock["ID"]; if (isset($arParams["SOCNET_GROUP_ID"]) && $arParams["SOCNET_GROUP_ID"] > 0) { $arParams["SOCNET_GROUP_ID"] = intval($arParams["SOCNET_GROUP_ID"]); } else { $arParams["SOCNET_GROUP_ID"] = ""; } $arResult["GRID_ID"] = "lists_fields"; $arResult["~LISTS_URL"] = str_replace(array("#group_id#"), array($arParams["SOCNET_GROUP_ID"]), $arParams["~LISTS_URL"]); $arResult["LISTS_URL"] = htmlspecialcharsbx($arResult["~LISTS_URL"]); $arResult["~LIST_URL"] = CHTTP::urlAddParams(str_replace(array("#list_id#", "#section_id#", "#group_id#"), array($arResult["IBLOCK_ID"], 0, $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_URL"]), array("list_section_id" => "")); $arResult["LIST_URL"] = htmlspecialcharsbx($arResult["~LIST_URL"]); $arResult["~LIST_EDIT_URL"] = str_replace(array("#list_id#", "#group_id#"), array($arResult["IBLOCK_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_EDIT_URL"]);
static function GroupERights($iblockID) { if (CIBlock::GetArrayByID($iblockID, "RIGHTS_MODE") === "E") { return; } $arGroups = self::GetGroups($iblockID); foreach ($arGroups as $groupID => $group) { foreach (self::$ops as $op => $opTrans) { $arGroups[$groupID]["Operations"][$op] = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $groupID, 'files', $op); } } $arTasks = CWebDavIblock::GetTasks(); // set e rights $arFields = array('RIGHTS_MODE' => 'E', 'GROUP_ID' => array()); $ib = new CIBlock(); $res = $ib->Update($iblockID, $arFields); $ibr = new CIBlockRights($iblockID); $rights = array(); $rights['n0'] = array('GROUP_CODE' => 'G1', 'DO_CLEAN' => 'Y', 'TASK_ID' => $arTasks['X']); // admins $rights['n1'] = array('GROUP_CODE' => 'G2', 'DO_CLEAN' => 'Y', 'TASK_ID' => $arTasks['D']); // nobody $ibr->SetRights($rights); foreach ($arGroups as $groupID => $group) { $sectionID = $group['SECTION']; $ibrs = new CIBlockSectionRights($iblockID, $sectionID); $rights = array(); $i = 0; foreach ($group["Operations"] as $op => $subj) { // 'Operations' => // array // 'view' => string 'A' (length=1) // 'write_limited' => string 'Z' (length=1) // 'bizproc' => null // 'write' => string 'Z' (length=1) // // A>Только владелец группы // E>Владелец группы и модераторы группы // K>Все члены группы // L>Авторизованные пользователи // N>Все посетители if ($subj) { if ($subj == "N") { $sSubj = "G2"; } elseif ($subj == "L") { $sSubj = "AU"; } else { $sSubj = "SG{$groupID}_{$subj}"; } $rights[$sSubj] = $arTasks[self::$ops[$op]]; if (self::$ops[$op] == 'E') { $rights["CR"] = $arTasks['W']; } } } $rights["SG{$groupID}_A"] = $arTasks["X"]; // admin of group $arRights = array(); $i = 0; foreach ($rights as $subj => $task) { $arRights['n' . $i++] = array('GROUP_CODE' => $subj, 'TASK_ID' => $task, 'DO_CLEAN' => 'NOT'); } $ibrs->SetRights($arRights); } }
foreach ($_SESSION["BX_IBLOCK_CONV"]["arNumber"] as $id) { $id = intval($id); $ar["arNumber"][$id] = $id; } } $_SESSION["BX_IBLOCK_CONV"] = $ar; } else { $_SESSION["BX_IBLOCK_CONV"] = false; } $arErrors = array(); $arMessages = array(); $APPLICATION->SetTitle(GetMessage("IBCONV_TITLE")); $sTableID = "tbl_iblock_convert"; $lAdmin = new CAdminList($sTableID); $lAdmin->BeginCustomContent(); if (!CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit") || !check_bitrix_sessid() && $STEP > 0) { $arErrors[] = GetMessage("IBCONV_PERMISSION"); } else { $rsIBlock = CIBlock::GetList(array(), array("ID" => $IBLOCK_ID, "CHECK_PERMISSIONS" => "N")); if ($arIBlock = $rsIBlock->Fetch()) { if ($arIBlock["VERSION"] == 1) { if ($STEP != 0 && $WAY != 12) { $arErrors[] = GetMessage("IBCONV_WRONG_CONVERSION"); } elseif ($STEP == 1) { $STEP = 2; } elseif ($STEP == 2) { $STEP = FirstStep12($arIBlock); } elseif ($STEP == 3) { $STEP = NextStep12($arIBlock); } elseif ($STEP == 4) { $STEP = 5;
foreach (GetModuleEvents("sale", "OnProductSearchFormIBlock", true) as $arEvent) { $arFilterTmp = ExecuteModuleEventEx($arEvent, array($arFilterTmp)); } $arFilterTmp['ACTIVE'] = 'Y'; $dbIBlock = CIBlock::GetList(array("ID" => "ASC"), $arFilterTmp); if ($arIBlock = $dbIBlock->Fetch()) { $iblockId = intval($arIBlock["ID"]); } else { unset($arFilterTmp["LID"]); $dbIBlock = CIBlock::GetList(array("ID" => "ASC"), $arFilterTmp); if ($arIBlock = $dbIBlock->Fetch()) { $iblockId = intval($arIBlock["ID"]); } } } $bBadBlock = !CIBlockRights::UserHasRightTo($iblockId, $iblockId, "element_read"); $arBuyerGroups = CUser::GetUserGroup($buyerId); $storeFromId = intval($_REQUEST["STORE_FROM_ID"]); $QUANTITY = intval($QUANTITY); if ($QUANTITY <= 0) { $QUANTITY = 1; } if (!$bBadBlock) { $arFilterFields = array("IBLOCK_ID", "filter_section", "filter_subsections", "filter_id_start", "filter_id_end", "filter_timestamp_from", "filter_timestamp_to", "filter_active", "filter_intext", "filter_product_name", "filter_xml_id", "filter_code"); $lAdmin->InitFilter($arFilterFields); if ($iblockId <= 0) { $dbItem = CCatalog::GetList(array(), array("IBLOCK_TYPE_ID" => "catalog")); $arItems = $dbItem->Fetch(); $iblockId = intval($arItems["ID"]); } //filter props
$ACTION = strval($ACTION); //******************** ACTIONS **************************************// if (($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1) { if (isset($arOldSetupVars['IBLOCK_ID'])) { $IBLOCK_ID = $arOldSetupVars['IBLOCK_ID']; } } if ($STEP > 1) { $IBLOCK_ID = (int) $IBLOCK_ID; if ($IBLOCK_ID <= 0) { $arSetupErrors[] = GetMessage("CATI_NO_IBLOCK"); } else { $rsIBlocks = CIBlock::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'CHECK_PERMISSIONS' => 'N')); if (!($arIBlock = $rsIBlocks->Fetch())) { $arSetupErrors[] = GetMessage("CATI_NO_IBLOCK"); } elseif (!CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, 'iblock_admin_display')) { $arSetupErrors[] = str_replace('#IBLOCK_ID#', $IBLOCK_ID, GetMessage('CET_ERROR_IBLOCK_PERM')); } } if (!empty($arSetupErrors)) { $STEP = 1; } } if (($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 2) { if (isset($arOldSetupVars['IBLOCK_ID']) && $arOldSetupVars['IBLOCK_ID'] == $IBLOCK_ID) { if (isset($arOldSetupVars['field_needed'])) { $field_needed = $arOldSetupVars['field_needed']; } if (isset($arOldSetupVars['field_num'])) { $field_num = $arOldSetupVars['field_num']; }
if ($str_RIGHTS_MODE === "E") { ?> <tr> <td width="40%" class="adm-detail-valign-top"><label for="RIGHTS_MODE"><?php echo GetMessage("IB_E_RIGHTS_MODE"); ?> </label></td> <td width="60%"> <input type="hidden" name="RIGHTS_MODE" value="S"> <input type="checkbox" id="RIGHTS_MODE" name="RIGHTS_MODE" value="E" checked="checked"><?php echo BeginNote(), GetMessage("IB_E_RIGHTS_MODE_NOTE1"), EndNote(); ?> </td> </tr> <?php $obIBlockRights = new CIBlockRights($ID); IBlockShowRights('iblock', $ID, $ID, GetMessage("IB_E_RIGHTS_SECTION_TITLE"), "RIGHTS", $obIBlockRights->GetRightsList(), $obIBlockRights->GetRights(array("count_overwrited" => true)), true); ?> <tr> <td colspan="2"> </td> </tr> <?php } else { ?> <tr> <td width="40%" class="adm-detail-valign-top"><label for="RIGHTS_MODE"><?php echo GetMessage("IB_E_RIGHTS_MODE"); ?> </label></td> <td width="60%"> <input type="hidden" name="RIGHTS_MODE" value="S">
protected function checkPermission() { $this->listPerm = CListPermissions::checkAccess($this->getUser(), $this->iblockTypeId, $this->iblockId, $this->socnetGroupId); if ($this->listPerm < 0) { switch ($this->listPerm) { case CListPermissions::WRONG_IBLOCK_TYPE: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_SEAC_WRONG_IBLOCK_TYPE')))); break; case CListPermissions::WRONG_IBLOCK: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_SEAC_WRONG_IBLOCK')))); break; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_SEAC_LISTS_FOR_SONET_GROUP_DISABLED')))); break; default: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_SEAC_UNKNOWN_ERROR')))); break; } } elseif ($this->listPerm < CListPermissions::IS_ADMIN && !CIBlockRights::UserHasRightTo($this->iblockId, $this->iblockId, 'iblock_edit')) { $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_SEAC_ACCESS_DENIED')))); } }
} if (0 == $IBLOCK_ID) { $IBLOCK_ID = intval($_REQUEST["IBLOCK_ID"]); if (0 >= $IBLOCK_ID) { $IBLOCK_ID = 0; } } $arIBTYPE = false; if ($IBLOCK_ID > 0) { $arIBlock = CIBlock::GetArrayByID($IBLOCK_ID); if ($arIBlock) { $arIBTYPE = CIBlockType::GetByIDLang($arIBlock["IBLOCK_TYPE_ID"], LANGUAGE_ID); if (!$arIBTYPE) { $APPLICATION->AuthForm(GetMessage("BX_MOD_CATALOG_ADMIN_CSS_BAD_BLOCK_TYPE_ID")); } $bBadBlock = !CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_admin_display"); } else { $bBadBlock = true; } if ($bBadBlock) { $APPLICATION->AuthForm(GetMessage("BX_MOD_CATALOG_ADMIN_CSS_BAD_IBLOCK")); } } else { $arIBlock = array("ID" => 0, "NAME" => "", "SECTIONS_NAME" => GetMessage("BX_MOD_CATALOG_ADMIN_CSS_SECTIONS")); } ############################################ $arFilter = array("?NAME" => $find_section_name, "SECTION_ID" => $find_section_section, "ID" => $find_section_id, ">=TIMESTAMP_X" => $find_section_timestamp_1, "<=TIMESTAMP_X" => $find_section_timestamp_2, "MODIFIED_BY" => $find_section_modified_user_id ? $find_section_modified_user_id : $find_section_modified_by, ">=DATE_CREATE" => $find_section_date_create_1, "<=DATE_CREATE" => $find_section_date_create_2, "CREATED_BY" => $find_section_created_user_id ? $find_section_created_user_id : $find_section_created_by, "ACTIVE" => $find_section_active, "CODE" => $find_section_code, "EXTERNAL_ID" => $find_section_external_id); if ($entity_id) { $USER_FIELD_MANAGER->AdminListAddFilter($entity_id, $arFilter); } if ($find_section_section == "") {