Fix retrieving of mount points for shared storage, fix #3218

This commit is contained in:
Michael Gapczynski 2013-05-02 17:47:11 -04:00
parent 8a5e88b21c
commit 7039421efc
3 changed files with 27 additions and 6 deletions

View File

@ -45,8 +45,8 @@ class Shared_Cache extends Cache {
if (isset($source['path']) && isset($source['fileOwner'])) {
\OC\Files\Filesystem::initMountPoints($source['fileOwner']);
$mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']);
if ($mount) {
$fullPath = $mount->getMountPoint().$source['path'];
if (is_array($mount)) {
$fullPath = $mount[key($mount)]->getMountPoint().$source['path'];
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($fullPath);
if ($storage) {
$this->files[$target] = $internalPath;
@ -60,6 +60,14 @@ class Shared_Cache extends Cache {
return false;
}
public function getNumericStorageId() {
if (isset($this->numericId)) {
return $this->numericId;
} else {
return false;
}
}
/**
* get the stored metadata of a file or folder
*
@ -267,4 +275,17 @@ class Shared_Cache extends Cache {
return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_GET_ALL);
}
}
/**
* find a folder in the cache which has not been fully scanned
*
* If multiply incomplete folders are in the cache, the one with the highest id will be returned,
* use the one with the highest id gives the best result with the background scanner, since that is most
* likely the folder where we stopped scanning previously
*
* @return string|bool the path of the folder or false when no folder matched
*/
public function getIncomplete() {
return false;
}
}

View File

@ -72,8 +72,8 @@ class Shared extends \OC\Files\Storage\Common {
if (!isset($source['fullPath'])) {
\OC\Files\Filesystem::initMountPoints($source['fileOwner']);
$mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']);
if ($mount) {
$this->files[$target]['fullPath'] = $mount->getMountPoint().$source['path'];
if (is_array($mount)) {
$this->files[$target]['fullPath'] = $mount[key($mount)]->getMountPoint().$source['path'];
} else {
$this->files[$target]['fullPath'] = false;
}

View File

@ -199,7 +199,7 @@ class Filesystem {
* @return Mount\Mount[]
*/
public static function getMountByNumericId($id) {
return self::$mounts->findByStorageId($id);
return self::$mounts->findByNumericId($id);
}
/**