From c12bb839e197990db86f0062fa6b7ec54aff5121 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Wed, 6 Apr 2016 11:09:55 +0200 Subject: Rename files to be PSR-4 compliant --- settings/Controller/EncryptionController.php | 145 +++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 settings/Controller/EncryptionController.php (limited to 'settings/Controller/EncryptionController.php') diff --git a/settings/Controller/EncryptionController.php b/settings/Controller/EncryptionController.php new file mode 100644 index 00000000000..504448a5a2c --- /dev/null +++ b/settings/Controller/EncryptionController.php @@ -0,0 +1,145 @@ + + * @author Lukas Reschke + * + * @copyright Copyright (c) 2016, 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 + * + */ + + +namespace OC\Settings\Controller; +use OC\Files\View; +use OCA\Encryption\Migration; +use OCP\IL10N; +use OCP\AppFramework\Controller; +use OCP\ILogger; +use OCP\IRequest; +use OCP\IConfig; +use OC\DB\Connection; +use OCP\IUserManager; + +/** + * @package OC\Settings\Controller + */ +class EncryptionController extends Controller { + + /** @var \OCP\IL10N */ + private $l10n; + + /** @var Connection */ + private $connection; + + /** @var IConfig */ + private $config; + + /** @var IUserManager */ + private $userManager; + + /** @var View */ + private $view; + + /** @var ILogger */ + private $logger; + + /** + * @param string $appName + * @param IRequest $request + * @param \OCP\IL10N $l10n + * @param \OCP\IConfig $config + * @param \OC\DB\Connection $connection + * @param IUserManager $userManager + * @param View $view + * @param ILogger $logger + */ + public function __construct($appName, + IRequest $request, + IL10N $l10n, + IConfig $config, + Connection $connection, + IUserManager $userManager, + View $view, + ILogger $logger) { + parent::__construct($appName, $request); + $this->l10n = $l10n; + $this->config = $config; + $this->connection = $connection; + $this->view = $view; + $this->userManager = $userManager; + $this->logger = $logger; + } + + /** + * @param IConfig $config + * @param View $view + * @param Connection $connection + * @param ILogger $logger + * @return Migration + */ + protected function getMigration(IConfig $config, + View $view, + Connection $connection, + ILogger $logger) { + return new Migration($config, $view, $connection, $logger); + } + + /** + * start migration + * + * @return array + */ + public function startMigration() { + // allow as long execution on the web server as possible + set_time_limit(0); + + try { + + $migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger); + $migration->reorganizeSystemFolderStructure(); + $migration->updateDB(); + + foreach ($this->userManager->getBackends() as $backend) { + $limit = 500; + $offset = 0; + do { + $users = $backend->getUsers('', $limit, $offset); + foreach ($users as $user) { + $migration->reorganizeFolderStructureForUser($user); + } + $offset += $limit; + } while (count($users) >= $limit); + } + + $migration->finalCleanUp(); + + } catch (\Exception $e) { + return [ + 'data' => [ + 'message' => (string)$this->l10n->t('A problem occurred, please check your log files (Error: %s)', [$e->getMessage()]), + ], + 'status' => 'error', + ]; + } + + return [ + 'data' => [ + 'message' => (string) $this->l10n->t('Migration Completed'), + ], + 'status' => 'success', + ]; + } + +} -- cgit v1.2.3