From 4438c7de1d0a66bb2c4eaff3bd718e5c946caa6f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 16 Oct 2014 15:17:12 +0200 Subject: [PATCH] Fix shared cache getFolderContents --- apps/files_sharing/lib/cache.php | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index e4fd85fd2a7..270ed704bbd 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -145,26 +145,23 @@ class Shared_Cache extends Cache { /** * get the metadata of all files stored in $folder * - * @param string $folder + * @param string $folderId * @return array */ - public function getFolderContents($folder) { - - if ($folder === false) { - $folder = ''; - } - - $dir = ($folder !== '') ? $folder . '/' : ''; - - $cache = $this->getSourceCache($folder); + public function getFolderContentsById($folderId) { + $cache = $this->getSourceCache(''); if ($cache) { - $parent = $this->storage->getFile($folder); - $sourceFolderContent = $cache->getFolderContents($this->files[$folder]); - foreach ($sourceFolderContent as $key => $c) { - $sourceFolderContent[$key]['path'] = $dir . $c['name']; - $sourceFolderContent[$key]['uid_owner'] = $parent['uid_owner']; - $sourceFolderContent[$key]['displayname_owner'] = \OC_User::getDisplayName($parent['uid_owner']); - $sourceFolderContent[$key]['permissions'] = $sourceFolderContent[$key]['permissions'] & $this->storage->getPermissions($dir . $c['name']); + $owner = $this->storage->getSharedFrom(); + $parentPath = $this->getPathById($folderId); + if ($parentPath !== '') { + $parentPath .= '/'; + } + $sourceFolderContent = $cache->getFolderContentsById($folderId); + foreach ($sourceFolderContent as &$c) { + $c['path'] = ltrim($parentPath . $c['name'], '/'); + $c['uid_owner'] = $owner; + $c['displayname_owner'] = \OC_User::getDisplayName($owner); + $c['permissions'] = $c['permissions'] & $this->storage->getPermissions(false); } return $sourceFolderContent; -- 2.39.5