summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-12-29 11:45:13 -0500
committerMichael Gapczynski <mtgap@owncloud.com>2012-12-29 11:45:13 -0500
commitcfc3526b25f1b96ab7a989f1c89f5b3911bc18fc (patch)
tree03b92510fe8c2bb23c4228e7ffc4f12f98926b98 /apps/files_sharing/lib
parentfb053f8e73056108acfd1574973d7b18581fc833 (diff)
downloadnextcloud-server-cfc3526b25f1b96ab7a989f1c89f5b3911bc18fc.tar.gz
nextcloud-server-cfc3526b25f1b96ab7a989f1c89f5b3911bc18fc.zip
Fix data for shared root folder
Diffstat (limited to 'apps/files_sharing/lib')
-rw-r--r--apps/files_sharing/lib/cache.php4
-rw-r--r--apps/files_sharing/lib/permissions.php3
-rw-r--r--apps/files_sharing/lib/share/file.php22
3 files changed, 23 insertions, 6 deletions
diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php
index d2ac8ccaaad..a22e7af7f59 100644
--- a/apps/files_sharing/lib/cache.php
+++ b/apps/files_sharing/lib/cache.php
@@ -62,7 +62,9 @@ class Shared_Cache extends Cache {
* @return array
*/
public function get($file) {
- if (is_string($file)) {
+ if ($file == '') {
+ return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT);
+ } else if (is_string($file)) {
if ($cache = $this->getSourceCache($file)) {
return $cache->get($this->files[$file]);
}
diff --git a/apps/files_sharing/lib/permissions.php b/apps/files_sharing/lib/permissions.php
index 51ae4cf102b..6eaed34b33d 100644
--- a/apps/files_sharing/lib/permissions.php
+++ b/apps/files_sharing/lib/permissions.php
@@ -30,6 +30,9 @@ class Shared_Permissions {
* @return int (-1 if file no permissions set)
*/
static public function get($fileId, $user) {
+ if ($fileId == -1) {
+ return \OCP\PERMISSION_READ;
+ }
$source = \OCP\Share::getItemSharedWithBySource('file', $fileId, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE);
if ($source) {
return $source['permissions'];
diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index 52220dc5b2b..5e98c455d35 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -23,8 +23,9 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
const FORMAT_SHARED_STORAGE = 0;
const FORMAT_GET_FOLDER_CONTENTS = 1;
- const FORMAT_GET_ALL = 2;
+ const FORMAT_FILE_APP_ROOT = 2;
const FORMAT_OPENDIR = 3;
+ const FORMAT_GET_ALL = 4;
private $path;
@@ -82,24 +83,35 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
$file['parent'] = $item['file_parent'];
$file['name'] = basename($item['file_target']);
$file['mimetype'] = $item['mimetype'];
+ $file['mimepart'] = $item['mimepart'];
$file['size'] = $item['size'];
$file['mtime'] = $item['mtime'];
$file['encrypted'] = $item['encrypted'];
$files[] = $file;
}
return $files;
- } else if ($format == self::FORMAT_GET_ALL) {
- $ids = array();
+ } else if ($format == self::FORMAT_FILE_APP_ROOT) {
+ $mtime = 0;
+ $size = 0;
foreach ($items as $item) {
- $ids[] = $item['file_source'];
+ if ($item['mtime'] > $mtime) {
+ $mtime = $item['mtime'];
+ }
+ $size += (int)$item['size'];
}
- return $ids;
+ return array('fileid' => -1, 'name' => 'Shared', 'mtime' => $mtime, 'mimetype' => 'httpd/unix-directory', 'size' => $size);
} else if ($format == self::FORMAT_OPENDIR) {
$files = array();
foreach ($items as $item) {
$files[] = basename($item['file_target']);
}
return $files;
+ } else if ($format == self::FORMAT_GET_ALL) {
+ $ids = array();
+ foreach ($items as $item) {
+ $ids[] = $item['file_source'];
+ }
+ return $ids;
}
return array();
}