diff options
author | Robin Appelman <icewind@owncloud.com> | 2015-12-10 16:40:27 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-12-14 13:38:54 +0100 |
commit | f27e98a3e28e3697f6eaf3521cbbe754318f9ba5 (patch) | |
tree | 7f937da213edc71fc4a920d173ba3af45fe8f897 | |
parent | 96b28382d940ef2bebd79f95ea218a3503b1a470 (diff) | |
download | nextcloud-server-f27e98a3e28e3697f6eaf3521cbbe754318f9ba5.tar.gz nextcloud-server-f27e98a3e28e3697f6eaf3521cbbe754318f9ba5.zip |
Migrate files external for the user that the filesystem is being setup for
-rw-r--r-- | apps/files_external/lib/config/configadapter.php | 2 | ||||
-rw-r--r-- | apps/files_external/migration/dummyusersession.php | 51 | ||||
-rw-r--r-- | apps/files_external/migration/storagemigrator.php | 21 |
3 files changed, 61 insertions, 13 deletions
diff --git a/apps/files_external/lib/config/configadapter.php b/apps/files_external/lib/config/configadapter.php index 4e37e6a4004..4f68c3c7fde 100644 --- a/apps/files_external/lib/config/configadapter.php +++ b/apps/files_external/lib/config/configadapter.php @@ -114,7 +114,7 @@ class ConfigAdapter implements IMountProvider { * @return \OCP\Files\Mount\IMountPoint[] */ public function getMountsForUser(IUser $user, IStorageFactory $loader) { - $this->migrator->migrateUser(); + $this->migrator->migrateUser($user); $mounts = []; diff --git a/apps/files_external/migration/dummyusersession.php b/apps/files_external/migration/dummyusersession.php new file mode 100644 index 00000000000..9ffbfd6309f --- /dev/null +++ b/apps/files_external/migration/dummyusersession.php @@ -0,0 +1,51 @@ +<?php +/** + * @author Robin Appelman <icewind@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\Files_external\Migration; + +use OCP\IUser; +use OCP\IUserSession; + +class DummyUserSession implements IUserSession { + + /** + * @var IUser + */ + private $user; + + public function login($user, $password) { + } + + public function logout() { + } + + public function setUser($user) { + $this->user = $user; + } + + public function getUser() { + return $this->user; + } + + public function isLoggedIn() { + return !is_null($this->user); + } +} diff --git a/apps/files_external/migration/storagemigrator.php b/apps/files_external/migration/storagemigrator.php index c8e323121ea..b469205ac55 100644 --- a/apps/files_external/migration/storagemigrator.php +++ b/apps/files_external/migration/storagemigrator.php @@ -32,6 +32,7 @@ use OCA\Files_external\Service\UserStoragesService; use OCP\IConfig; use OCP\IDBConnection; use OCP\ILogger; +use OCP\IUser; use OCP\IUserSession; /** @@ -49,11 +50,6 @@ class StorageMigrator { private $dbConfig; /** - * @var IUserSession - */ - private $userSession; - - /** * @var IConfig */ private $config; @@ -73,7 +69,6 @@ class StorageMigrator { * * @param BackendService $backendService * @param DBConfigService $dbConfig - * @param IUserSession $userSession * @param IConfig $config * @param IDBConnection $connection * @param ILogger $logger @@ -81,14 +76,12 @@ class StorageMigrator { public function __construct( BackendService $backendService, DBConfigService $dbConfig, - IUserSession $userSession, IConfig $config, IDBConnection $connection, ILogger $logger ) { $this->backendService = $backendService; $this->dbConfig = $dbConfig; - $this->userSession = $userSession; $this->config = $config; $this->connection = $connection; $this->logger = $logger; @@ -121,14 +114,18 @@ class StorageMigrator { /** * Migrate personal storages configured by the current user + * + * @param IUser $user */ - public function migrateUser() { - $userId = $this->userSession->getUser()->getUID(); + public function migrateUser(IUser $user) { + $dummySession = new DummyUserSession(); + $dummySession->setUser($user); + $userId = $user->getUID(); $userVersion = $this->config->getUserValue($userId, 'files_external', 'config_version', '0.0.0'); if (version_compare($userVersion, '0.5.0', '<')) { $this->config->setUserValue($userId, 'files_external', 'config_version', '0.5.0'); - $legacyService = new UserLegacyStoragesService($this->backendService, $this->userSession); - $storageService = new UserStoragesService($this->backendService, $this->dbConfig, $this->userSession); + $legacyService = new UserLegacyStoragesService($this->backendService, $dummySession); + $storageService = new UserStoragesService($this->backendService, $this->dbConfig, $dummySession); $this->migrate($legacyService, $storageService); } |