• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/userpermissions.php
  • Класс: BitrixRpaUserPermissions
  • Вызов: UserPermissions::canMoveItem
public function canMoveItem(Item $item, int $fromStageId, int $toStageId): bool
{
	$result = false;

	if ($this->isAccessDeniedToEverything())
	{
		return false;
	}

	if(static::canMoveAnywhere())
	{
		return true;
	}

	// moving forward
	if($this->isSimplePermissionsForTheFirstStage())
	{
		$firstStage = $item->getType()->getFirstStage();
		$result = ($firstStage && $firstStage->getId() === $fromStageId && $item->getCreatedBy() === $this->userId);
	}
	if(!$result && $this->canPerform(self::ENTITY_STAGE, $fromStageId, self::ACTION_MOVE))
	{
		$result = $this->isMovingFromStageToStageAvailable($item->getType(), $fromStageId, $toStageId);
	}
	// move back
	if(!$result && $this->isMoverAlwaysCanMoveBack() && $item->getMovedBy() === $this->userId)
	{
		$toStage = $item->getType()->getStages()->getByPrimary($toStageId);
		$result = ($toStage && isset($toStage->getPossibleNextStageIds()[$fromStageId]));
	}

	return $result;
}