aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/share/file.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/lib/share/file.php')
-rw-r--r--apps/files_sharing/lib/share/file.php14
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
+}