%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/lists.list.edit/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/lists.list.edit/ajax.php |
<?php use Bitrix\Lists\Internals\Error\Error; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Loader; use Bitrix\Lists\Internals\Controller; require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); if (!Loader::IncludeModule('lists') || !\Bitrix\Main\Application::getInstance()->getContext() ->getRequest()->getQuery('action')) { return; } Loc::loadMessages(__FILE__); class ListsEditAjaxController extends Controller { /** @var int */ protected $iblockId; protected $socnetGroupId = 0; /** @var string */ protected $iblockTypeId; protected $listPerm; protected function listOfActions() { return array( 'copyIblock' => array( 'method' => array('POST'), ), ); } protected function processActionCopyIblock() { $this->checkRequiredPostParams(array('iblockTypeId', 'iblockId', 'socnetGroupId')); $this->fillDataForCheckPermission(); $this->checkPermission(); if($this->errorCollection->hasErrors()) $this->sendJsonErrorResponse(); $errors = array(); $copyIblockId = CLists::copyIblock($this->iblockId, $errors); if(!empty($errors)) { foreach($errors as $error) $this->errorCollection->addOne(new Error($error)); } if($this->errorCollection->hasErrors()) $this->sendJsonErrorResponse(); $this->sendJsonSuccessResponse( array('copyIblockId' => $copyIblockId, 'message' => Loc::getMessage('LISTS_MESSAGE_SUCCESS'))); } protected function fillDataForCheckPermission() { $this->iblockId = intval($this->request->getPost('iblockId')); $this->iblockTypeId = $this->request->getPost('iblockTypeId'); $this->socnetGroupId = intval($this->request->getPost('socnetGroupId')); } 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_WRONG_IBLOCK_TYPE')))); break; case CListPermissions::WRONG_IBLOCK: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_WRONG_IBLOCK')))); break; case CListPermissions::LISTS_FOR_SONET_GROUP_DISABLED: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_FOR_SONET_GROUP_DISABLED')))); break; default: $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_UNKNOWN_ERROR')))); break; } } elseif($this->listPerm < CListPermissions::IS_ADMIN || !($this->iblockId && CIBlockRights::userHasRightTo($this->iblockId, $this->iblockId, "iblock_edit"))) { $this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_ACCESS_DENIED')))); } } } $controller = new ListsEditAjaxController(); $controller ->setActionName(\Bitrix\Main\Application::getInstance()->getContext()->getRequest()->getQuery('action')) ->exec();