• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/storage.php
  • Класс: BitrixDiskStorage
  • Вызов: Storage::getReadableList
static function getReadableList(SecurityContext $securityContext, array $parameters = array())
{
	if (empty($parameters['with']))
	{
		$parameters['with'] = array();
	}

	$conditionTree = Query::filter();
	$conditionTree
		->whereColumn('ID', 'STORAGE.ROOT_OBJECT_ID')
		->where('STORAGE.MODULE_ID', Driver::INTERNAL_MODULE_ID)
		->where('RIGHTS_CHECK', true)
	;

	$filter = [
		'=PARENT_ID' => null,
		'=STORAGE.MODULE_ID' => Driver::INTERNAL_MODULE_ID,
		'=RIGHTS_CHECK' => true,
	];

	if (empty($parameters['filter']))
	{
		$parameters['filter'] = Query::filter();
	}

	if ($parameters['filter'] instanceof ConditionTree)
	{
		$parameters['filter'] = $conditionTree->addCondition($parameters['filter']);
	}
	elseif (is_array($parameters['filter']))
	{
		$parameters['filter'] = array_merge($parameters['filter'], $filter);
	}

	$parameters['with'] = array_merge($parameters['with'], array('STORAGE'));

	$parameters = Driver::getInstance()->getRightsManager()->addRightsCheck($securityContext, $parameters, array(
		'ID',
		'CREATED_BY'
	));

	/** @var Folder[] $items */
	$items = Folder::getModelList($parameters);
	$storages = array();
	foreach ($items as $item)
	{
		$item->getStorage()->setAttributes(array('ROOT_OBJECT' => $item));
		$storages[] = $item->getStorage();
	}

	return $storages;
}