|
|
@@ -373,42 +373,42 @@ class Filesystem { |
|
|
|
|
|
|
|
$userObject = \OC_User::getManager()->get($user); |
|
|
|
|
|
|
|
if (!is_null($userObject)) { |
|
|
|
$homeStorage = \OC_Config::getValue( 'objectstore' ); |
|
|
|
if (!empty($homeStorage)) { |
|
|
|
// sanity checks |
|
|
|
if (empty($homeStorage['class'])) { |
|
|
|
\OCP\Util::writeLog('files', 'No class given for objectstore', \OCP\Util::ERROR); |
|
|
|
} |
|
|
|
if (!isset($homeStorage['arguments'])) { |
|
|
|
$homeStorage['arguments'] = array(); |
|
|
|
} |
|
|
|
// instantiate object store implementation |
|
|
|
$homeStorage['arguments']['objectstore'] = new $homeStorage['class']($homeStorage['arguments']); |
|
|
|
// mount with home object store implementation |
|
|
|
$homeStorage['class'] = '\OC\Files\ObjectStore\HomeObjectStoreStorage'; |
|
|
|
} else { |
|
|
|
$homeStorage = array( |
|
|
|
//default home storage configuration: |
|
|
|
'class' => '\OC\Files\Storage\Home', |
|
|
|
'arguments' => array() |
|
|
|
); |
|
|
|
} |
|
|
|
$homeStorage['arguments']['user'] = $userObject; |
|
|
|
if (is_null($userObject)) { |
|
|
|
\OCP\Util::writeLog('files', ' Backends provided no user object for '.$user, \OCP\Util::ERROR); |
|
|
|
throw new \OC\User\NoUserException(); |
|
|
|
} |
|
|
|
|
|
|
|
// check for legacy home id (<= 5.0.12) |
|
|
|
if (\OC\Files\Cache\Storage::exists('local::' . $root . '/')) { |
|
|
|
$homeStorage['arguments']['legacy'] = true; |
|
|
|
$homeStorage = \OC_Config::getValue( 'objectstore' ); |
|
|
|
if (!empty($homeStorage)) { |
|
|
|
// sanity checks |
|
|
|
if (empty($homeStorage['class'])) { |
|
|
|
\OCP\Util::writeLog('files', 'No class given for objectstore', \OCP\Util::ERROR); |
|
|
|
} |
|
|
|
|
|
|
|
self::mount($homeStorage['class'], $homeStorage['arguments'], $user); |
|
|
|
|
|
|
|
$home = \OC\Files\Filesystem::getStorage($user); |
|
|
|
if (!isset($homeStorage['arguments'])) { |
|
|
|
$homeStorage['arguments'] = array(); |
|
|
|
} |
|
|
|
// instantiate object store implementation |
|
|
|
$homeStorage['arguments']['objectstore'] = new $homeStorage['class']($homeStorage['arguments']); |
|
|
|
// mount with home object store implementation |
|
|
|
$homeStorage['class'] = '\OC\Files\ObjectStore\HomeObjectStoreStorage'; |
|
|
|
} else { |
|
|
|
$homeStorage = array( |
|
|
|
//default home storage configuration: |
|
|
|
'class' => '\OC\Files\Storage\Home', |
|
|
|
'arguments' => array() |
|
|
|
); |
|
|
|
} |
|
|
|
else { |
|
|
|
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); |
|
|
|
$homeStorage['arguments']['user'] = $userObject; |
|
|
|
|
|
|
|
// check for legacy home id (<= 5.0.12) |
|
|
|
if (\OC\Files\Cache\Storage::exists('local::' . $root . '/')) { |
|
|
|
$homeStorage['arguments']['legacy'] = true; |
|
|
|
} |
|
|
|
|
|
|
|
self::mount($homeStorage['class'], $homeStorage['arguments'], $user); |
|
|
|
|
|
|
|
$home = \OC\Files\Filesystem::getStorage($user); |
|
|
|
|
|
|
|
self::mountCacheDir($user); |
|
|
|
|
|
|
|
// Chance to mount for other storages |