From 10de4a7b904fe472a240dd4d35d83daa919e6a1e Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 13 Jun 2014 13:26:09 +0200 Subject: [PATCH] move creation of / and users 'files' from storage constructor to setupFS / mount initialization --- lib/private/files/filesystem.php | 8 ++++++++ .../files/objectstore/abstractobjectstore.php | 11 ----------- lib/private/util.php | 13 +++++++++++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php index 5fb345c87f8..f5a7060ec90 100644 --- a/lib/private/files/filesystem.php +++ b/lib/private/files/filesystem.php @@ -343,6 +343,14 @@ class Filesystem { $homeStorage['arguments']['legacy'] = true; } self::mount($homeStorage['class'], $homeStorage['arguments'], $user); + + $home = \OC\Files\Filesystem::getStorage($user); + if ( $home->instanceOfStorage('\OC\Files\ObjectStore\AbstractObjectStore') ) { + //create the files folder in the cache when mounting the objectstore for a user + if ( ! $home->is_dir('files') ) { + $home->mkdir('files'); + } + } } else { self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); diff --git a/lib/private/files/objectstore/abstractobjectstore.php b/lib/private/files/objectstore/abstractobjectstore.php index 2ef2f38bf40..3f67ad9a494 100644 --- a/lib/private/files/objectstore/abstractobjectstore.php +++ b/lib/private/files/objectstore/abstractobjectstore.php @@ -131,17 +131,6 @@ abstract class AbstractObjectStore extends \OC\Files\Storage\Common { } else { $this->user = null; } - //initialize cache with root directory in cache - if ( ! $this->is_dir('/') ) { - $this->mkdir('/'); - } - - if (isset($params['user']) && is_object($params['user'])) { - //create the files folder in the cache when mounting the objectstore for a user - if ( ! $this->is_dir('files') ) { - $this->mkdir('files'); - } - } } public function mkdir($path) { diff --git a/lib/private/util.php b/lib/private/util.php index c2db9e5773e..435a2914555 100755 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -110,8 +110,17 @@ class OC_Util { $userDir = '/'.$user.'/files'; - //autocreate users "home" directory for local storage only - if ( ! isset( $root_storage ) ) { + //autocreate users "home" directory + if ( isset( $root_storage ) ) { + $root = \OC\Files\Filesystem::getStorage('/'); + if ( $root->instanceOfStorage('\OC\Files\ObjectStore\AbstractObjectStore') ) { + //initialize cache with root directory in cache + if ( ! $root->is_dir('/') ) { + $root->mkdir('/'); + } + } + } else { + //copy skeleton for local storage only $userRoot = OC_User::getHome($user); $userDirectory = $userRoot . '/files'; if( !is_dir( $userDirectory )) { -- 2.39.5