summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorFlorin Peter <github@florin-peter.de>2013-05-29 19:11:39 +0200
committerFlorin Peter <github@florin-peter.de>2013-05-29 19:11:39 +0200
commitd2652645425777c1a97f8421e51aad9bdcf39684 (patch)
tree4fa7ce7d05060755361a77f49684e1c226653a6f /apps
parentae0f37e9e20a540ed93b99814f4eb066bd26aa88 (diff)
downloadnextcloud-server-d2652645425777c1a97f8421e51aad9bdcf39684.tar.gz
nextcloud-server-d2652645425777c1a97f8421e51aad9bdcf39684.zip
fix for share folder on external storage
Diffstat (limited to 'apps')
-rw-r--r--apps/files_encryption/hooks/hooks.php15
-rw-r--r--apps/files_encryption/lib/util.php20
2 files changed, 33 insertions, 2 deletions
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index 9af1f2c6459..4fc8fa75709 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -327,6 +327,13 @@ class Hooks {
// if a folder was shared, get a list of all (sub-)folders
if ($params['itemType'] === 'folder') {
+
+ // get the path including mount point only if not a shared folder
+ if(strncmp($path, '/Shared' , strlen('/Shared') !== 0)) {
+ // get path including the the storage mount point
+ $path = $util->getPathWithMountPoint($params['itemSource']);
+ }
+
$allFiles = $util->getAllFiles($path);
} else {
$allFiles = array($path);
@@ -402,7 +409,13 @@ class Hooks {
// if we unshare a folder we need a list of all (sub-)files
if ( $params['itemType'] === 'folder' ) {
-
+
+ // get the path including mount point only if not a shared folder
+ if(strncmp($path, '/Shared' , strlen('/Shared') !== 0)) {
+ // get path including the the storage mount point
+ $path = $util->getPathWithMountPoint($params['itemSource']);
+ }
+
$allFiles = $util->getAllFiles( $path );
} else {
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 0ff76e60580..64d7e9e5842 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -1199,7 +1199,7 @@ class Util {
$result = array();
- $content = $this->view->getDirectoryContent($this->userFilesDir . $dir);
+ $content = $this->view->getDirectoryContent(\OC\Files\Filesystem::normalizePath($this->userFilesDir . '/' . $dir));
// handling for re shared folders
$path_split = explode('/', $dir);
@@ -1531,4 +1531,22 @@ class Util {
$this->recoverAllFiles('/', $privateKey);
}
+ /**
+ * Get the path including the storage mount point
+ * @param int $id
+ * @return string the path including the mount point like AmazonS3/folder/file.txt
+ */
+ public function getPathWithMountPoint($id) {
+ list($storage, $internalPath) = \OC\Files\Cache\Cache::getById($id);
+ $mount = \OC\Files\Filesystem::getMountByStorageId($storage);
+ $mountPoint = $mount[0]->getMountPoint();
+ $path = \OC\Files\Filesystem::normalizePath($mountPoint.'/'.$internalPath);
+
+ // reformat the path to be relative e.g. /user/files/folder becomes /folder/
+ $pathSplit = explode( '/', $path );
+ $relativePath = implode( '/', array_slice( $pathSplit, 3 ) );
+
+ return $relativePath;
+ }
+
}