nextcloud/apps/encryption/lib/Command/EnableMasterKey.php

55 lines
1.7 KiB
PHP
Raw Normal View History

2015-09-07 06:38:55 -04:00
<?php
2015-09-07 06:38:55 -04:00
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
2015-09-07 06:38:55 -04:00
*/
namespace OCA\Encryption\Command;
use OCA\Encryption\Util;
use OCP\AppFramework\Services\IAppConfig;
2015-09-07 06:38:55 -04:00
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
class EnableMasterKey extends Command {
public function __construct(
protected Util $util,
protected IAppConfig $config,
protected QuestionHelper $questionHelper,
) {
2015-09-07 06:38:55 -04:00
parent::__construct();
}
protected function configure(): void {
2015-09-07 06:38:55 -04:00
$this
->setName('encryption:enable-master-key')
->setDescription('Enable the master key. Only available for fresh installations with no existing encrypted data! There is also no way to disable it again.');
}
protected function execute(InputInterface $input, OutputInterface $output): int {
2015-09-07 06:38:55 -04:00
$isAlreadyEnabled = $this->util->isMasterKeyEnabled();
if ($isAlreadyEnabled) {
2015-09-07 06:38:55 -04:00
$output->writeln('Master key already enabled');
return self::SUCCESS;
}
$question = new ConfirmationQuestion(
'Warning: Only available for fresh installations with no existing encrypted data! '
2015-09-07 06:38:55 -04:00
. 'There is also no way to disable it again. Do you want to continue? (y/n) ', false);
if ($this->questionHelper->ask($input, $output, $question)) {
$this->config->setAppValueBool('useMasterKey', true);
$output->writeln('Master key successfully enabled.');
return self::SUCCESS;
2015-09-07 06:38:55 -04:00
}
$output->writeln('aborted.');
return self::FAILURE;
2015-09-07 06:38:55 -04:00
}
}