use the new home storage backend when no existing local storage backend exists for the user's home

This commit is contained in:
Robin Appelman 2013-10-29 00:26:35 +01:00
parent f1e6e80eb1
commit e273c14540
2 changed files with 21 additions and 2 deletions

View File

@ -48,7 +48,7 @@ class Storage {
}
public static function getStorageId($numericId) {
$sql = 'SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?';
$result = \OC_DB::executeAudited($sql, array($numericId));
if ($row = $result->fetchRow()) {
@ -57,4 +57,17 @@ class Storage {
return null;
}
}
public static function exists($storageId) {
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($storageId));
if ($row = $result->fetchRow()) {
return true;
} else {
return false;
}
}
}

View File

@ -305,7 +305,13 @@ class Filesystem {
$parser = new \OC\ArrayParser();
$root = \OC_User::getHome($user);
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
if (\OC\Files\Cache\Storage::exists('local::' . $root . '/')) {
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
} else {
$userObject = \OC_User::getManager()->get($user);
self::mount('\OC\Files\Storage\Home', array('user' => $userObject), $user);
}
$datadir = \OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data");
//move config file to it's new position