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");
 }
예제 #2
0
 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;
     }
 }
예제 #3
0
 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;
     }
 }
예제 #4
0
 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;
 }
예제 #5
0
 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'))));
     }
 }
예제 #6
0
 /**
  * @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;
 }
예제 #7
0
$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'])) {
예제 #8
0
    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'));
예제 #9
0
파일: ajax.php 프로젝트: Satariall/izurit
        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();
예제 #10
0
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);
예제 #11
0
 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;
 }
예제 #12
0
        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;
예제 #13
0
			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).'&amp;lang='.LANGUAGE_ID.'&amp;ID='.$IBLOCK_ID.'&amp;admin=Y&amp;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
예제 #14
0
 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;
 }
예제 #15
0
		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",
예제 #16
0
<?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);
예제 #17
0
            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;
예제 #18
0
파일: iblock.php 프로젝트: ASDAFF/bxApiDocs
 /**
  * <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>
  * &lt;?<br>if($USER-&gt;IsAdmin())<br>{<br>	$DB-&gt;StartTransaction();<br>	if(!CIBlock::Delete($iblock_id))<br>	{<br>		$strWarning .= GetMessage("IBLOCK_DELETE_ERROR");<br>		$DB-&gt;Rollback();<br>	}<br>	else<br>		$DB-&gt;Commit();<br>}<br>?&gt;<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;
 }
예제 #19
0
 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;
     }
 }
예제 #20
0
 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;
 }
예제 #21
0
}

$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");
?>
예제 #22
0
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) {
예제 #23
0
            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"]);
예제 #24
0
 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);
     }
 }
예제 #25
0
        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
예제 #27
0
$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'];
        }
예제 #28
0
            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">&nbsp;</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">
예제 #29
0
 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'))));
     }
 }
예제 #30
0
}
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 == "") {