diff options
Diffstat (limited to 'plugins/TwoFactorAuth/Commands/Disable2FAForUser.php')
-rw-r--r-- | plugins/TwoFactorAuth/Commands/Disable2FAForUser.php | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/TwoFactorAuth/Commands/Disable2FAForUser.php b/plugins/TwoFactorAuth/Commands/Disable2FAForUser.php new file mode 100644 index 0000000000..20d8d421a9 --- /dev/null +++ b/plugins/TwoFactorAuth/Commands/Disable2FAForUser.php @@ -0,0 +1,37 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Plugins\TwoFactorAuth\Commands; + +use Piwik\API\Request; +use Piwik\Plugin\ConsoleCommand; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class Disable2FAForUser extends ConsoleCommand +{ + protected function configure() + { + $this->setName('twofactorauth:disable-2fa-for-user'); + $this->setDescription('Disable two-factor authentication for a user. Useful if a user loses the device that was used for two-factor authentication. After it was disabled, the user will be able to set it up again.'); + $this->addOption('login', null, InputOption::VALUE_REQUIRED, 'Login of an existing user'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $this->checkAllRequiredOptionsAreNotEmpty($input); + $login = $input->getOption('login'); + + Request::processRequest('TwoFactorAuth.resetTwoFactorAuth', array( + 'userLogin' => $login + )); + $message = sprintf('<info>Disabled two-factor authentication for user: %s</info>', $login); + $output->writeln($message); + } +} |