- Модуль: 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);
}