• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/integration/diskuploadercontroller.php
  • Класс: BitrixDiskUfIntegrationDiskUploaderController
  • Вызов: DiskUploaderController::load
public function load(array $ids): LoadResultCollection
{
	$results = new LoadResultCollection();
	$userId = CurrentUser::get()->getId();
	foreach ($ids as $id)
	{
		$loadResult = new LoadResult($id);
		[$type, $realValue] = FileUserType::detectType($id);
		if ($type == FileUserType::TYPE_NEW_OBJECT)
		{
			$fileModel = DiskFile::loadById($realValue, ['STORAGE']);
			if (!$fileModel)
			{
				$loadResult->addError(new Error('Could not find file'));
			}
			elseif (!$fileModel->canRead($fileModel->getStorage()->getCurrentUserSecurityContext()))
			{
				$loadResult->addError(new Error('Bad permission. Could not read this file'));
			}
			else
			{
				$fileInfo = $this->createFileInfo($fileModel);
				$loadResult->setFile($fileInfo);
			}
		}
		else
		{
			$attachedModel = DiskAttachedObject::loadById($realValue, ['OBJECT', 'VERSION']);
			if (!$attachedModel)
			{
				$loadResult->addError(new Error('Could not find attached object'));
			}
			elseif (!$attachedModel->canRead($userId))
			{
				$loadResult->addError(new Error('Bad permission. Could not read this file'));
			}
			else
			{
				$fileInfo = $this->createFileInfo($attachedModel);
				$loadResult->setFile($fileInfo);
			}
		}

		$results->add($loadResult);
	}

	return $results;
}