|
|
@@ -539,7 +539,15 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { |
|
|
|
if ($sourceStorage->instanceOfStorage(ObjectStoreStorage::class)) { |
|
|
|
/** @var ObjectStoreStorage $sourceStorage */ |
|
|
|
if ($sourceStorage->getObjectStore()->getStorageId() === $this->getObjectStore()->getStorageId()) { |
|
|
|
/** @var CacheEntry $sourceEntry */ |
|
|
|
$sourceEntry = $sourceStorage->getCache()->get($sourceInternalPath); |
|
|
|
$sourceEntryData = $sourceEntry->getData(); |
|
|
|
// $sourceEntry['permissions'] here is the permissions from the jailed storage for the current |
|
|
|
// user. Instead we use $sourceEntryData['scan_permissions'] that are the permissions from the |
|
|
|
// unjailed storage. |
|
|
|
if (is_array($sourceEntryData) && array_key_exists('scan_permissions', $sourceEntryData)) { |
|
|
|
$sourceEntry['permissions'] = $sourceEntryData['scan_permissions']; |
|
|
|
} |
|
|
|
$this->copyInner($sourceEntry, $targetInternalPath); |
|
|
|
return true; |
|
|
|
} |