Your IP : 3.16.56.30


Current Path : /var/www/axolotl/data/www/murmansk.axolotls.ru/bitrix/modules/lists/lib/controller/
Upload File :
Current File : /var/www/axolotl/data/www/murmansk.axolotls.ru/bitrix/modules/lists/lib/controller/element.php

<?
namespace Bitrix\Lists\Controller;

use Bitrix\Iblock\Copy\Implement\Element as ElementImplementer;
use Bitrix\Lists\Entity\Utils;
use Bitrix\Lists\Security\ElementRight;
use Bitrix\Lists\Security\Right;
use Bitrix\Lists\Security\RightParam;
use Bitrix\Lists\Service\Param;
use Bitrix\Main\Copy\Container;
use Bitrix\Main\Copy\ContainerCollection;
use Bitrix\Main\Copy\EntityCopier;

class Element extends Entity
{
	public function copyAction()
	{
		$param = $this->getParamFromRequest();
		$params = $param->getParams();

		$this->checkPermission($param, ElementRight::EDIT);
		if ($this->getErrors())
		{
			return null;
		}

		$containerCollection = new ContainerCollection();
		$containerCollection[] = new Container($params["ELEMENT_ID"]);

		$elementImplementer = new ElementImplementer();
		$elementCopier = new EntityCopier($elementImplementer);
		$result = $elementCopier->copy($containerCollection);

		if ($result->getErrors())
		{
			$this->addErrors($result->getErrors());
			return null;

		}
		else
		{
			$resultData = $result->getData();
			return $resultData[$params["ELEMENT_ID"]];
		}
	}

	protected function checkPermission(Param $param, $permission)
	{
		global $USER;
		$rightParam = new RightParam($param);
		$rightParam->setUser($USER);
		$rightParam->setEntityId(Utils::getElementId($param->getParams()));

		$right = new Right($rightParam, new ElementRight($rightParam));
		$right->checkPermission($permission);
		if ($right->hasErrors())
		{
			$this->addErrors($right->getErrors());
		}
	}
}