Your IP : 3.17.129.242


Current Path : /var/www/axolotl/data/www/ekb.axolotls.ru/bitrix/modules/rpa/lib/controller/
Upload File :
Current File : /var/www/axolotl/data/www/ekb.axolotls.ru/bitrix/modules/rpa/lib/controller/fields.php

<?php

namespace Bitrix\Rpa\Controller;

use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;
use Bitrix\Rpa\Driver;
use Bitrix\Rpa\Model\FieldTable;

class Fields extends Base
{
	public function getSettingsAction(\Bitrix\Rpa\Model\Type $type, int $stageId = 0): ?array
	{
		if(!Driver::getInstance()->getUserPermissions()->canModifyType($type->getId()))
		{
			$this->addError(new Error(Loc::getMessage('RPA_MODIFY_TYPE_ACCESS_DENIED')));
			return null;
		}

		return [
			'fields' => FieldTable::getGroupedList($type->getId(), $stageId),
		];
	}

	public function setSettingsAction(\Bitrix\Rpa\Model\Type $type, array $fields = [], int $stageId = 0): ?array
	{
		if(!Driver::getInstance()->getUserPermissions()->canModifyType($type->getId()))
		{
			$this->addError(new Error(Loc::getMessage('RPA_MODIFY_TYPE_ACCESS_DENIED')));
			return null;
		}

		$result = FieldTable::mergeSettings($type->getId(), $stageId, $fields);
		if(!$result->isSuccess())
		{
			$this->addErrors($result->getErrors());
			return null;
		}

		return [
			'fields' => FieldTable::getGroupedList($type->getId(), $stageId),
		];
	}

	public function setVisibilitySettingsAction(\Bitrix\Rpa\Model\Type $type, string $visibility, array $fields = [], int $stageId = 0): ?array
	{
		if(!Driver::getInstance()->getUserPermissions()->canModifyType($type->getId()))
		{
			$this->addError(new Error(Loc::getMessage('RPA_MODIFY_TYPE_ACCESS_DENIED')));
			return null;
		}

		$data = [
			$visibility => $fields,
		];
		$result = FieldTable::mergeSettings($type->getId(), $stageId, $data, $visibility);
		if(!$result->isSuccess())
		{
			$this->addErrors($result->getErrors());
			return null;
		}

		return [
			'fields' => FieldTable::getGroupedList($type->getId(), $stageId),
		];
	}
}