• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/command/update.php
  • Класс: BitrixRpaCommandUpdate
  • Вызов: Update::checkAccess
public function checkAccess(): Result
{
	$result = new Result();

	$userPermissions = Driver::getInstance()->getUserPermissions($this->userId);
	if($this->item->isChanged('STAGE_ID'))
	{
		if(!$userPermissions->canMoveItem($this->item, $this->item->remindActualStageId(), $this->item->getStageId()))
		{
			$actualStage = $this->item->getType()->getStage($this->item->remindActualStageId());
			if($actualStage)
			{
				$actualStageName = $actualStage->getName();
			}
			else
			{
				$actualStageName = $this->item->remindActualStageId();
			}
			$result->addError($this->getMoveAccessDeniedError($actualStageName));
		}
		elseif(!$userPermissions->canModifyItemsInStage($this->item->getType(), $this->item->remindActualStageId()))
		{
			$userFields = $this->item->getType()->getUserFieldCollection();
			foreach($userFields as $userField)
			{
				if($this->item->isChanged($userField->getName()))
				{
					$result->addError($this->getModifyAccessDeniedError($this->item->getStage()->getName()));
					break;
				}
			}
		}
	}
	elseif(!$userPermissions->canModifyItemsInStage($this->item->getType(), $this->item->getStageId()))
	{
		$result->addError($this->getModifyAccessDeniedError($this->item->getStage()->getName()));
	}

	return $result;
}