fix for share folder on external storage
This commit is contained in:
parent
ae0f37e9e2
commit
d265264542
|
@ -327,6 +327,13 @@ class Hooks {
|
||||||
|
|
||||||
// if a folder was shared, get a list of all (sub-)folders
|
// if a folder was shared, get a list of all (sub-)folders
|
||||||
if ($params['itemType'] === 'folder') {
|
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);
|
$allFiles = $util->getAllFiles($path);
|
||||||
} else {
|
} else {
|
||||||
$allFiles = array($path);
|
$allFiles = array($path);
|
||||||
|
@ -403,6 +410,12 @@ class Hooks {
|
||||||
// if we unshare a folder we need a list of all (sub-)files
|
// if we unshare a folder we need a list of all (sub-)files
|
||||||
if ( $params['itemType'] === 'folder' ) {
|
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 );
|
$allFiles = $util->getAllFiles( $path );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1199,7 +1199,7 @@ class Util {
|
||||||
|
|
||||||
$result = array();
|
$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
|
// handling for re shared folders
|
||||||
$path_split = explode('/', $dir);
|
$path_split = explode('/', $dir);
|
||||||
|
@ -1531,4 +1531,22 @@ class Util {
|
||||||
$this->recoverAllFiles('/', $privateKey);
|
$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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue