diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 67a0410ef7..8c680e9c97 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -86,14 +86,13 @@ class Shared_Cache extends Cache { public function get($file) { if (is_string($file)) { if ($cache = $this->getSourceCache($file)) { - $path = 'files' . $this->storage->getMountPoint(); - $path .= ($file !== '') ? '/' . $file : ''; $data = $cache->get($this->files[$file]); $data['displayname_owner'] = \OC_User::getDisplayName($this->storage->getSharedFrom()); - $data['path'] = $path; + $data['path'] = $file; if ($file === '') { $data['is_share_mount_point'] = true; } + $data['uid_owner'] = $this->storage->getOwner($file); return $data; } } else { @@ -101,7 +100,6 @@ class Shared_Cache extends Cache { // cache information for the source item if (!is_int($file) || $file === 0) { $file = $this->storage->getSourceId(); - $mountPoint = $this->storage->getMountPoint(); } $query = \OC_DB::prepare( 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`,' @@ -124,8 +122,8 @@ class Shared_Cache extends Cache { } else { $data['size'] = (int)$data['size']; } - if (isset($mountPoint)) { - $data['path'] = 'files/' . $mountPoint; + if (!is_int($file) || $file === 0) { + $data['path'] = ''; $data['is_share_mount_point'] = true; } return $data; @@ -299,6 +297,11 @@ class Shared_Cache extends Cache { $files = $this->getFolderContents($dir); // no results? if (!$files) { + // maybe it's a single shared file + $file = $this->get(''); + if (($mimepart && $file['mimepart'] === $mimepart) || ($mimetype && $file['mimetype'] === $mimetype)) { + $result[] = $file; + } continue; } foreach ($files as $file) { diff --git a/lib/private/files/view.php b/lib/private/files/view.php index 93d2c15c50..31ec8cfacf 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -996,6 +996,7 @@ class View { break; } } + $rootEntry['path'] = substr($path . '/' . $rootEntry['name'], strlen($user) + 2); // full path without /$user/ $files[] = new FileInfo($path . '/' . $rootEntry['name'], $subStorage, '', $rootEntry); } }