• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/panel/ui/actions/item/editactionsitem.php
  • Класс: BitrixIblockGridPanelUIActionsItemEditActionsItem
  • Вызов: EditActionsItem::processRequest
public function processRequest(HttpRequest $request, bool $isSelectedAllRows): ?Result
{
	$result = new Result();

	$rows = $request->getPost('FIELDS');
	$rows = $this->appendFilesToRows($request, $rows);

	foreach ($rows as $id => $fields)
	{
		[$type, $id] = RowType::parseIndex($id);

		$fields = $this->getColumns()->prepareEditableColumnsValues($fields);
		if (empty($fields))
		{
			continue;
		}

		if ($type === RowType::ELEMENT)
		{
			if (!$this->rights->canEditElement($id))
			{
				$message = Loc::getMessage('', [
					'#ID#' => $id,
				]);
				$result->addError(
					new Error($message)
				);

				continue;
			}

			$result->addErrors(
				$this->saveElement($id, $fields)->getErrors()
			);
		}
		else
		{
			if (!$this->rights->canEditSection($id))
			{
				$message = Loc::getMessage('IBLOCK_GRID_PANEL_UI_EDIT_ACTIONS_ITEM_ACCESS_DENIED', [
					'#ID#' => $id,
				]);
				$result->addError(
					new Error($message)
				);

				continue;
			}

			$result->addErrors(
				$this->saveSection($id, $fields)->getErrors()
			);
		}
	}

	return $result;
}