|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|