diff --git a/Command/Tfa.php b/Command/TfaDisable.php
similarity index 98%
rename from Command/Tfa.php
rename to Command/TfaDisable.php
index 4ad8aa9..4b86cbd 100644
--- a/Command/Tfa.php
+++ b/Command/TfaDisable.php
@@ -27,7 +27,7 @@
use Symfony\Component\Console\Output\OutputInterface;
use MSP\TwoFactorAuth\Api\TfaInterface;
-class Tfa extends Command
+class TfaDisable extends Command
{
/**
* @var ConfigInterface
diff --git a/Command/TfaReset.php b/Command/TfaReset.php
new file mode 100644
index 0000000..f7a7c7c
--- /dev/null
+++ b/Command/TfaReset.php
@@ -0,0 +1,85 @@
+userConfigManager = $userConfigManager;
+ $this->user = $user;
+ $this->userFactory = $userFactory;
+ }
+
+ protected function configure()
+ {
+ $this->setName('msp:security:tfa:reset');
+ $this->setDescription('Reset configuration for one user');
+
+ $this->addArgument('user', InputArgument::REQUIRED, __('Username'));
+ $this->addArgument('provider', InputArgument::REQUIRED, __('Provider code (google, authy, u2fkey)'));
+
+ parent::configure();
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $userName = $input->getArgument('user');
+ $provider = $input->getArgument('provider');
+
+ $user = $this->userFactory->create();
+
+ $this->user->load($user, $userName, 'username');
+ if (!$user->getId()) {
+ throw new LocalizedException(__('Unknown user %1', $userName));
+ }
+
+ $this->userConfigManager->resetProviderConfig($user, $provider);
+ }
+}
diff --git a/README.md b/README.md
index efd44e9..341566f 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# MSP TwoFactorAuth
+MSP TwoFactorAuth
Two Factor Authentication module for maximum **backend access protection** in Magento 2.
@@ -8,6 +8,27 @@ Two Factor Authentication module for maximum **backend access protection** in Ma
Did you lock yourself out from Magento backend? click here.
+## Main features:
+
+* Providers:
+ * Google authenticator
+ * QR code enroll
+ * Authy
+ * SMS
+ * Call
+ * Token
+ * One touch
+ * U2F keys (Yubico and others)
+ * Duo Security
+ * SMS
+ * Push notification
+* Trusted devices
+ * High security rolling codes
+* Trusted devices revoke list
+* Central security suite events logging
+* Per user configuration
+* Forced global 2FA configuration
+
## Installing on Magento2:
**1. Install using composer**
@@ -24,23 +45,27 @@ Enable from **Store > Config > SecuritySuite > Two Factor Authentication**.
**3. Enable two factor authentication for your user**
-You can select between a set of different 2FA providers.
+You can select between a set of different 2FA providers. **Multiple concurrent providers** are supported.
-**4. Google Authenticator example**
+**4. Subscribe / Configure your 2FA provider(s):**
+
+**4.1 Google Authenticator example**
+
+
-**4.1. Scan the QR code with your Two Factor Authentication application**
+**4.2. Duo Security example**
-
+
-**4.2. Login and type a valid two factor authentication code**
+**4.3. U2F key (Yubico and others) example**
-
+
-**5. Duo Security example**
+**4.4. Authy example**
-
+
## Emergency commandline disable:
@@ -48,4 +73,14 @@ If you messed up with two factor authentication you can disable it from command-
`php bin/magento msp:security:tfa:disable`
+If you need to manually reset one single user configuration (so you can restart configuration / subscription), type:
+
+`php bin/magento msp:security:tfa:reset `
+
+e.g.:
+
+`php bin/magento msp:security:tfa:reset admin google`
+`php bin/magento msp:security:tfa:reset admin u2fkey`
+`php bin/magento msp:security:tfa:reset admin authy`
+
This will disable two factor auth globally.
diff --git a/etc/di.xml b/etc/di.xml
index bbaf4aa..0a52e80 100644
--- a/etc/di.xml
+++ b/etc/di.xml
@@ -31,7 +31,8 @@
- - MSP\TwoFactorAuth\Command\Tfa
+ - MSP\TwoFactorAuth\Command\TfaDisable
+ - MSP\TwoFactorAuth\Command\TfaReset
diff --git a/screenshots/token.png b/screenshots/google_qr.png
similarity index 100%
rename from screenshots/token.png
rename to screenshots/google_qr.png