- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bitrix24disk/legacy/diskstorage.php
- Класс: BitrixDiskBitrix24DiskLegacyDiskStorage
- Вызов: DiskStorage::buildSharedData
protected function buildSharedData()
{
$storageId = $this->storage->getId();
$rootObjectId = $this->storage->getRootObjectId();
$fromEntity = $this->connection->getSqlHelper()->forSql(Sharing::CODE_USER . $this->storage->getEntityId());
$query = new InternalsEntityQuery(InternalsSharingTable::getEntity());
$query->addSelect('PATH.OBJECT_ID', 'OBJECT_ID');
$query->registerRuntimeField('',
new ReferenceField('PATH',
InternalsObjectPathTable::getEntity(),
array('=this.REAL_OBJECT_ID' => 'ref.OBJECT_ID'),
array('join_type' => 'INNER')
)
);
$query->addFilter('REAL_STORAGE_ID', $storageId);
$query->addFilter('PATH.PARENT_ID', $rootObjectId);
$query->addFilter('=FROM_ENTITY', $fromEntity);
$query->addFilter('!==TO_ENTITY', $fromEntity);
foreach($query->exec() as $sharedRow)
{
$this->sharedData[$sharedRow['OBJECT_ID']] = true;
}
}