File tree Expand file tree Collapse file tree
apps/files_versions/lib/Versions Expand file tree Collapse file tree 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 ;
@@ -197,6 +198,21 @@ public function read(IVersion $version) {
197198
198199 public function getVersionFile (IUser $ user , FileInfo $ sourceFile , $ revision ): File {
199200 $ userFolder = $ this ->rootFolder ->getUserFolder ($ user ->getUID ());
201+ $ owner = $ sourceFile ->getOwner ();
202+ $ storage = $ sourceFile ->getStorage ();
203+
204+ // Shared files have their versions in the owners root folder so we need to obtain them from there
205+ if ($ storage ->instanceOfStorage (ISharedStorage::class) && $ owner ) {
206+ /** @var SharedStorage $storage */
207+ $ userFolder = $ this ->rootFolder ->getUserFolder ($ owner ->getUID ());
208+ $ user = $ owner ;
209+ $ ownerPathInStorage = $ sourceFile ->getInternalPath ();
210+ $ sourceFile = $ storage ->getShare ()->getNode ();
211+ if ($ sourceFile instanceof Folder) {
212+ $ sourceFile = $ sourceFile ->get ($ ownerPathInStorage );
213+ }
214+ }
215+
200216 $ versionFolder = $ this ->getVersionFolder ($ user );
201217 /** @var File $file */
202218 $ file = $ versionFolder ->get ($ userFolder ->getRelativePath ($ sourceFile ->getPath ()) . '.v ' . $ revision );
You can’t perform that action at this time.
0 commit comments