• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/controller/sharing.php
  • Класс: BitrixDiskControllerSharing
  • Вызов: Sharing::changeTaskNameAction
public function changeTaskNameAction(DiskSharing $sharing, $newTaskName)
{
	$currentUserId = $this->getCurrentUser()->getId();
	$baseObject = $sharing->getRealObject();
	if (!$baseObject)
	{
		$this->errorCollection[] = new Error('Could not find object');

		return;
	}

	$rightsManager = DiskDriver::getInstance()->getRightsManager();
	$securityContext = $baseObject->getStorage()->getSecurityContext($currentUserId);
	if (!$baseObject->canShare($securityContext) || !$rightsManager->isValidTaskName($newTaskName))
	{
		$this->errorCollection[] = new Error(Loc::getMessage('DISK_ERROR_MESSAGE_DENIED'));

		return;
	}

	$maxTaskName = $rightsManager->getPseudoMaxTaskByObjectForUser($baseObject, $currentUserId);
	if ($rightsManager->pseudoCompareTaskName($newTaskName, $maxTaskName) > 0)
	{
		$this->errorCollection[] = new Error(Loc::getMessage('DISK_ERROR_MESSAGE_DENIED'));

		return;
	}

	$rightsManager = DiskDriver::getInstance()->getRightsManager();

	$domain = $rightsManager->getSharingDomain($sharing->getId());
	$rightsManager->deleteByDomain($baseObject->getRealObject(), $domain);

	if (!$sharing->changeTaskName($newTaskName))
	{
		$this->errorCollection->add($sharing->getErrors());

		return;
	}

	$newRights = [
		[
			'ACCESS_CODE' => $sharing->getToEntity(),
			'TASK_ID' => $rightsManager->getTaskIdByName($sharing->getTaskName()),
			'DOMAIN' => $domain,
		]
	];

	$rightsManager->append($baseObject->getRealObject(), $newRights);
}