summaryrefslogtreecommitdiffstats
path: root/core/Command
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-02-22 23:02:31 -0600
committerMorris Jobke <hey@morrisjobke.de>2017-02-22 23:02:31 -0600
commit9533f4e5edfded577b67d08f7778a8a1704132f2 (patch)
treedc3e1741b8e69b0f8be6abf3cf678f499e68bff7 /core/Command
parent54317e80c0837cb5efe43086685fc09d6796e1ef (diff)
downloadnextcloud-server-9533f4e5edfded577b67d08f7778a8a1704132f2.tar.gz
nextcloud-server-9533f4e5edfded577b67d08f7778a8a1704132f2.zip
Clean up single user mode
Single user mode basically disables WebDAV, OCS and cron execution. Since we heavily rely on WebDAV and OCS also in the web UI it's basically useless. An admin only sees a broken interface and can't even change any settings nor sees any files. Also sharing is not possible. As this is at least the case since Nextcloud 9 and we haven't received any reports for this it seems that this feature is not used at all so I removed it. The encryption commands now rely on the well tested maintenance mode. Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'core/Command')
-rw-r--r--core/Command/Encryption/DecryptAll.php22
-rw-r--r--core/Command/Encryption/EncryptAll.php22
-rw-r--r--core/Command/Maintenance/SingleUser.php79
3 files changed, 22 insertions, 101 deletions
diff --git a/core/Command/Encryption/DecryptAll.php b/core/Command/Encryption/DecryptAll.php
index e02d7be5bb6..a2c306adc28 100644
--- a/core/Command/Encryption/DecryptAll.php
+++ b/core/Command/Encryption/DecryptAll.php
@@ -54,7 +54,7 @@ class DecryptAll extends Command {
protected $wasTrashbinEnabled;
/** @var bool */
- protected $wasSingleUserModeEnabled;
+ protected $wasMaintenanceModeEnabled;
/** @var \OC\Encryption\DecryptAll */
protected $decryptAll;
@@ -83,20 +83,20 @@ class DecryptAll extends Command {
}
/**
- * Set single user mode and disable the trashbin app
+ * Set maintenance mode and disable the trashbin app
*/
- protected function forceSingleUserAndTrashbin() {
+ protected function forceMaintenanceAndTrashbin() {
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
- $this->wasSingleUserModeEnabled = $this->config->getSystemValue('singleuser', false);
- $this->config->setSystemValue('singleuser', true);
+ $this->wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false);
+ $this->config->setSystemValue('maintenance', true);
$this->appManager->disableApp('files_trashbin');
}
/**
- * Reset the single user mode and re-enable the trashbin app
+ * Reset the maintenance mode and re-enable the trashbin app
*/
- protected function resetSingleUserAndTrashbin() {
- $this->config->setSystemValue('singleuser', $this->wasSingleUserModeEnabled);
+ protected function resetMaintenanceAndTrashbin() {
+ $this->config->setSystemValue('maintenance', $this->wasMaintenanceModeEnabled);
if ($this->wasTrashbinEnabled) {
$this->appManager->enableApp('files_trashbin');
}
@@ -147,7 +147,7 @@ class DecryptAll extends Command {
$output->writeln('');
$question = new ConfirmationQuestion('Do you really want to continue? (y/n) ', false);
if ($this->questionHelper->ask($input, $output, $question)) {
- $this->forceSingleUserAndTrashbin();
+ $this->forceMaintenanceAndTrashbin();
$user = $input->getArgument('user');
$result = $this->decryptAll->decryptAll($input, $output, $user);
if ($result === false) {
@@ -158,7 +158,7 @@ class DecryptAll extends Command {
$output->writeln('Server side encryption remains enabled');
$this->config->setAppValue('core', 'encryption_enabled', 'yes');
}
- $this->resetSingleUserAndTrashbin();
+ $this->resetMaintenanceAndTrashbin();
} else {
$output->write('Enable server side encryption... ');
$this->config->setAppValue('core', 'encryption_enabled', 'yes');
@@ -168,7 +168,7 @@ class DecryptAll extends Command {
} catch (\Exception $e) {
// enable server side encryption again if something went wrong
$this->config->setAppValue('core', 'encryption_enabled', 'yes');
- $this->resetSingleUserAndTrashbin();
+ $this->resetMaintenanceAndTrashbin();
throw $e;
}
diff --git a/core/Command/Encryption/EncryptAll.php b/core/Command/Encryption/EncryptAll.php
index f26c163aa2f..3a0c88c0798 100644
--- a/core/Command/Encryption/EncryptAll.php
+++ b/core/Command/Encryption/EncryptAll.php
@@ -50,7 +50,7 @@ class EncryptAll extends Command {
protected $wasTrashbinEnabled;
/** @var bool */
- protected $wasSingleUserModeEnabled;
+ protected $wasMaintenanceModeEnabled;
/**
* @param IManager $encryptionManager
@@ -72,20 +72,20 @@ class EncryptAll extends Command {
}
/**
- * Set single user mode and disable the trashbin app
+ * Set maintenance mode and disable the trashbin app
*/
- protected function forceSingleUserAndTrashbin() {
+ protected function forceMaintenanceAndTrashbin() {
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
- $this->wasSingleUserModeEnabled = $this->config->getSystemValue('singleuser', false);
- $this->config->setSystemValue('singleuser', true);
+ $this->wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false);
+ $this->config->setSystemValue('maintenance', true);
$this->appManager->disableApp('files_trashbin');
}
/**
- * Reset the single user mode and re-enable the trashbin app
+ * Reset the maintenance mode and re-enable the trashbin app
*/
- protected function resetSingleUserAndTrashbin() {
- $this->config->setSystemValue('singleuser', $this->wasSingleUserModeEnabled);
+ protected function resetMaintenanceAndTrashbin() {
+ $this->config->setSystemValue('maintenance', $this->wasMaintenanceModeEnabled);
if ($this->wasTrashbinEnabled) {
$this->appManager->enableApp('files_trashbin');
}
@@ -116,17 +116,17 @@ class EncryptAll extends Command {
$output->writeln('');
$question = new ConfirmationQuestion('Do you really want to continue? (y/n) ', false);
if ($this->questionHelper->ask($input, $output, $question)) {
- $this->forceSingleUserAndTrashbin();
+ $this->forceMaintenanceAndTrashbin();
try {
$defaultModule = $this->encryptionManager->getEncryptionModule();
$defaultModule->encryptAll($input, $output);
} catch (\Exception $ex) {
- $this->resetSingleUserAndTrashbin();
+ $this->resetMaintenanceAndTrashbin();
throw $ex;
}
- $this->resetSingleUserAndTrashbin();
+ $this->resetMaintenanceAndTrashbin();
} else {
$output->writeln('aborted');
}
diff --git a/core/Command/Maintenance/SingleUser.php b/core/Command/Maintenance/SingleUser.php
deleted file mode 100644
index e4f945596d2..00000000000
--- a/core/Command/Maintenance/SingleUser.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @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 OC\Core\Command\Maintenance;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-use OCP\IConfig;
-
-class SingleUser extends Command {
-
- /** @var IConfig */
- protected $config;
-
- /**
- * @param IConfig $config
- */
- public function __construct(IConfig $config) {
- $this->config = $config;
- parent::__construct();
- }
-
- protected function configure() {
- $this
- ->setName('maintenance:singleuser')
- ->setDescription('set single user mode')
- ->addOption(
- 'on',
- null,
- InputOption::VALUE_NONE,
- 'enable single user mode'
- )
- ->addOption(
- 'off',
- null,
- InputOption::VALUE_NONE,
- 'disable single user mode'
- );
- }
-
- protected function execute(InputInterface $input, OutputInterface $output) {
- if ($input->getOption('on')) {
- $this->config->setSystemValue('singleuser', true);
- $output->writeln('Single user mode enabled');
- } elseif ($input->getOption('off')) {
- $this->config->setSystemValue('singleuser', false);
- $output->writeln('Single user mode disabled');
- } else {
- if ($this->config->getSystemValue('singleuser', false)) {
- $output->writeln('Single user mode is currently enabled');
- } else {
- $output->writeln('Single user mode is currently disabled');
- }
- }
- }
-}