diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-04-12 22:26:44 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-04-12 22:26:44 -0400 |
commit | 63387fa9cfdb8bd20356fce9729a5a49a9f78bb9 (patch) | |
tree | db43a63ce2d2bffbd1f7d7142f6928e5d5958b97 /app/Console/ResetTwoFactorCommand.php | |
parent | af7027ea31a691e2eea6d813f6aa3cf08f8b9d0a (diff) |
Added command line utility to reset user password and to disable 2FA
Diffstat (limited to 'app/Console/ResetTwoFactorCommand.php')
-rw-r--r-- | app/Console/ResetTwoFactorCommand.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/Console/ResetTwoFactorCommand.php b/app/Console/ResetTwoFactorCommand.php new file mode 100644 index 00000000..3bf01e81 --- /dev/null +++ b/app/Console/ResetTwoFactorCommand.php @@ -0,0 +1,38 @@ +<?php + +namespace Kanboard\Console; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class ResetTwoFactorCommand extends BaseCommand +{ + protected function configure() + { + $this + ->setName('user:reset-2fa') + ->setDescription('Remove two-factor authentication for a user') + ->addArgument('username', InputArgument::REQUIRED, 'Username'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $username = $input->getArgument('username'); + $userId = $this->user->getIdByUsername($username); + + if (empty($userId)) { + $output->writeln('<error>User not found</error>'); + return false; + } + + if (!$this->user->update(array('id' => $userId, 'twofactor_activated' => 0, 'twofactor_secret' => ''))) { + $output->writeln('<error>Unable to update user profile</error>'); + return false; + } + + $output->writeln('<info>Two-factor authentication disabled</info>'); + + return true; + } +} |