diff --git a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php index 36faf893d66aa..fee050df901cb 100644 --- a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php +++ b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php @@ -27,6 +27,7 @@ namespace OCA\Files_Versions\Versions; use OC\Files\View; +use OCA\Files_Sharing\ISharedStorage; use OCA\Files_Sharing\SharedStorage; use OCA\Files_Versions\Db\VersionEntity; use OCA\Files_Versions\Db\VersionsMapper; @@ -196,6 +197,14 @@ public function read(IVersion $version) { public function getVersionFile(IUser $user, FileInfo $sourceFile, $revision): File { $userFolder = $this->rootFolder->getUserFolder($user->getUID()); + $file = $userFolder->get($userFolder->getRelativePath($sourceFile->getPath())); + $storage = $file->getStorage(); + if ($storage->instanceOfStorage(ISharedStorage::class)) { + /** @var ISharedStorage $storage */ + $userFolder = $this->rootFolder->getUserFolder($file->getOwner()->getUID()); + $user = $this->userManager->get($file->getOwner()?->getUID()); + $sourceFile = $file->getStorage()->getShare()->getNode(); + } $versionFolder = $this->getVersionFolder($user); /** @var File $file */ $file = $versionFolder->get($userFolder->getRelativePath($sourceFile->getPath()) . '.v' . $revision);