File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed
apps/files_versions/lib/Versions Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change 2727namespace OCA \Files_Versions \Versions ;
2828
2929use OC \Files \View ;
30+ use OCA \Files_Sharing \ISharedStorage ;
3031use OCA \Files_Sharing \SharedStorage ;
3132use OCA \Files_Versions \Db \VersionEntity ;
3233use OCA \Files_Versions \Db \VersionsMapper ;
@@ -196,6 +197,18 @@ public function read(IVersion $version) {
196197
197198 public function getVersionFile (IUser $ user , FileInfo $ sourceFile , $ revision ): File {
198199 $ userFolder = $ this ->rootFolder ->getUserFolder ($ user ->getUID ());
200+ $ file = $ userFolder ->get ($ userFolder ->getRelativePath ($ sourceFile ->getPath ()));
201+ $ ownerUserId = $ file ->getOwner ()?->getUID();
202+ $ storage = $ file ->getStorage ();
203+
204+ /** @var ISharedStorage $storage */
205+ if ($ storage ->instanceOfStorage (ISharedStorage::class) && $ ownerUserId ) {
206+ // Shared files have their versions in the owners root folder
207+ $ userFolder = $ this ->rootFolder ->getUserFolder ($ ownerUserId );
208+ $ user = $ this ->userManager ->get ($ file ->getOwner ()->getUID ());
209+ $ sourceFile = $ storage ->getShare ()->getNode ();
210+ }
211+
199212 $ versionFolder = $ this ->getVersionFolder ($ user );
200213 /** @var File $file */
201214 $ file = $ versionFolder ->get ($ userFolder ->getRelativePath ($ sourceFile ->getPath ()) . '.v ' . $ revision );
You can’t perform that action at this time.
0 commit comments