Completed
Push — master ( eec7f9...8d277e )
by Roeland
11:20
created

Enforce::writeNotEnforced()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * @copyright 2018 Christoph Wurst <[email protected]>
7
 *
8
 * @author 2018 Christoph Wurst <[email protected]>
9
 *
10
 * @license GNU AGPL version 3 or any later version
11
 *
12
 * This program is free software: you can redistribute it and/or modify
13
 * it under the terms of the GNU Affero General Public License as
14
 * published by the Free Software Foundation, either version 3 of the
15
 * License, or (at your option) any later version.
16
 *
17
 * This program is distributed in the hope that it will be useful,
18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
 * GNU Affero General Public License for more details.
21
 *
22
 * You should have received a copy of the GNU Affero General Public License
23
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
 *
25
 */
26
27
namespace OC\Core\Command\TwoFactorAuth;
28
29
use OC\Authentication\TwoFactorAuth\MandatoryTwoFactor;
30
use Symfony\Component\Console\Command\Command;
31
use Symfony\Component\Console\Input\InputInterface;
32
use Symfony\Component\Console\Input\InputOption;
33
use Symfony\Component\Console\Output\OutputInterface;
34
35
class Enforce extends Command {
36
37
	/** @var MandatoryTwoFactor */
38
	private $mandatoryTwoFactor;
39
40
	public function __construct(MandatoryTwoFactor $mandatoryTwoFactor) {
41
		parent::__construct();
42
43
		$this->mandatoryTwoFactor = $mandatoryTwoFactor;
44
	}
45
46
	protected function configure() {
47
		$this->setName('twofactorauth:enforce');
48
		$this->setDescription('Enabled/disable enforced two-factor authentication');
49
		$this->addOption(
50
			'on',
51
			null,
52
			InputOption::VALUE_NONE,
53
			'enforce two-factor authentication'
54
		);
55
		$this->addOption(
56
			'off',
57
			null,
58
			InputOption::VALUE_NONE,
59
			'don\'t enforce two-factor authenticaton'
60
		);
61
	}
62
63
	protected function execute(InputInterface $input, OutputInterface $output) {
64
		if ($input->getOption('on')) {
65
			$this->mandatoryTwoFactor->setEnforced(true);
66
		} elseif ($input->getOption('off')) {
67
			$this->mandatoryTwoFactor->setEnforced(false);
68
		}
69
70
		if ($this->mandatoryTwoFactor->isEnforced()) {
71
			$this->writeEnforced($output);
72
		} else {
73
			$this->writeNotEnforced($output);
74
		}
75
	}
76
77
	/**
78
	 * @param OutputInterface $output
79
	 */
80
	protected function writeEnforced(OutputInterface $output) {
81
		$output->writeln('Two-factor authentication is enforced for all users');
82
	}
83
84
	/**
85
	 * @param OutputInterface $output
86
	 */
87
	protected function writeNotEnforced(OutputInterface $output) {
88
		$output->writeln('Two-factor authentication is not enforced');
89
	}
90
91
}
92