diff options
Diffstat (limited to 'apps/files_sharing/lib/share/file.php')
-rw-r--r-- | apps/files_sharing/lib/share/file.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php index c8821ee0fe8..074ca9928d4 100644 --- a/apps/files_sharing/lib/share/file.php +++ b/apps/files_sharing/lib/share/file.php @@ -30,7 +30,7 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { public function isValidSource($itemSource, $uidOwner) { $path = OC_FileCache::getPath($itemSource, $uidOwner); - if (OC_Filesystem::file_exists($path)) { + if ($path) { $this->path = $path; return true; } @@ -47,7 +47,7 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { } public function generateTarget($filePath, $shareWith, $exclude = null) { - $target = $filePath; + $target = '/'.basename($filePath); if (isset($exclude)) { if ($pos = strrpos($target, '.')) { $name = substr($target, 0, $pos); @@ -72,8 +72,16 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { // Only 1 item should come through for this format call return array('path' => $items[key($items)]['path'], 'permissions' => $items[key($items)]['permissions']); } else if ($format == self::FORMAT_FILE_APP) { + if (isset($parameters['mimetype_filter']) && $parameters['mimetype_filter']) { + $mimetype_filter = $parameters['mimetype_filter']; + } $files = array(); foreach ($items as $item) { + if (isset($mimetype_filter) + && strpos($item['mimetype'], $mimetype_filter) !== 0 + && $item['mimetype'] != 'httpd/unix-directory') { + continue; + } $file = array(); $file['id'] = $item['file_source']; $file['path'] = $item['file_target']; @@ -116,4 +124,4 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { return array(); } -}
\ No newline at end of file +} |