- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/rest/service/folder.php
- Класс: BitrixDiskRestServiceFolder
- Вызов: Folder::shareToUser
protected function shareToUser($id, $userId, $taskName)
{
$userId = (int)$userId;
$folder = $this->getFolderById($id);
if (!$this->isDiskStorage($folder))
{
throw new AccessException;
}
$securityContext = $folder->getStorage()->getCurrentUserSecurityContext();
$rightsManager = DiskDriver::getInstance()->getRightsManager();
if (!$folder->canShare($securityContext) || !$rightsManager->isValidTaskName($taskName))
{
throw new AccessException;
}
$maxTaskName = $rightsManager->getPseudoMaxTaskByObjectForUser($folder, $this->userId);
if ($rightsManager->pseudoCompareTaskName($taskName, $maxTaskName) > 0)
{
throw new AccessException;
}
$sharing = DiskSharing::add(
[
'FROM_ENTITY' => DiskSharing::CODE_USER . $this->userId,
'REAL_OBJECT' => $folder,
'CREATED_BY' => $this->userId,
'CAN_FORWARD' => false,
'TO_ENTITY' => DiskSharing::CODE_USER . $userId,
'TASK_NAME' => $taskName,
],
$this->errorCollection
);
if(!$sharing)
{
return null;
}
return true;
}