mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-10-29 17:26:40 +01:00
Regression: Fixed broken 2FA form [#2109]
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
1. [](#bugfix)
|
1. [](#bugfix)
|
||||||
* Fixed missing `admin-preset.css` in multisite environments
|
* Fixed missing `admin-preset.css` in multisite environments
|
||||||
|
* Regression: Fixed broken 2FA form [#2109](https://github.com/getgrav/grav-plugin-admin/issues/2109)
|
||||||
|
|
||||||
# v1.10.9
|
# v1.10.9
|
||||||
## 04/06/2021
|
## 04/06/2021
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ use Grav\Plugin\Admin\Themes;
|
|||||||
use Grav\Plugin\Admin\AdminController;
|
use Grav\Plugin\Admin\AdminController;
|
||||||
use Grav\Plugin\Admin\Twig\AdminTwigExtension;
|
use Grav\Plugin\Admin\Twig\AdminTwigExtension;
|
||||||
use Grav\Plugin\Admin\WhiteLabel;
|
use Grav\Plugin\Admin\WhiteLabel;
|
||||||
use Grav\Plugin\FlexObjects\FlexFormFactory;
|
|
||||||
use Grav\Plugin\Form\Form;
|
use Grav\Plugin\Form\Form;
|
||||||
use Grav\Plugin\Form\Forms;
|
use Grav\Plugin\Form\Forms;
|
||||||
use Grav\Plugin\Login\Login;
|
use Grav\Plugin\Login\Login;
|
||||||
@@ -684,10 +683,10 @@ class AdminPlugin extends Plugin
|
|||||||
$twig->twig_vars['forms'] = $forms;
|
$twig->twig_vars['forms'] = $forms;
|
||||||
|
|
||||||
// preserve form validation
|
// preserve form validation
|
||||||
if (!isset($twig->twig_vars['form'])) {
|
|
||||||
if ($this->admin->form) {
|
if ($this->admin->form) {
|
||||||
$twig->twig_vars['form'] = $this->admin->form;
|
$twig->twig_vars['form'] = $this->admin->form;
|
||||||
} elseif (isset($header->form)) {
|
} elseif (!isset($twig->twig_vars['form'])) {
|
||||||
|
if (isset($header->form)) {
|
||||||
$twig->twig_vars['form'] = new Form($page);
|
$twig->twig_vars['form'] = new Form($page);
|
||||||
} elseif (isset($header->forms)) {
|
} elseif (isset($header->forms)) {
|
||||||
$twig->twig_vars['form'] = new Form($page, null, reset($header->forms));
|
$twig->twig_vars['form'] = new Form($page, null, reset($header->forms));
|
||||||
|
|||||||
@@ -250,21 +250,26 @@ class LoginController extends AdminController
|
|||||||
return $this->createRedirectResponse('/');
|
return $this->createRedirectResponse('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$login = $this->getLogin();
|
||||||
|
|
||||||
$this->page = $this->createPage('login');
|
$this->page = $this->createPage('login');
|
||||||
$this->form = $this->getForm('admin-login-twofa');
|
$this->form = $this->getForm('login-twofa');
|
||||||
try {
|
try {
|
||||||
$this->checkNonce();
|
$this->checkNonce();
|
||||||
} catch (PageExpiredException $e) {
|
} catch (PageExpiredException $e) {
|
||||||
$this->setMessage($this->translate('PLUGIN_ADMIN.INVALID_SECURITY_TOKEN'), 'error');
|
$this->setMessage($this->translate('PLUGIN_ADMIN.INVALID_SECURITY_TOKEN'), 'error');
|
||||||
|
|
||||||
return $this->createDisplayResponse();
|
// Failed 2FA nonce check, logout and redirect.
|
||||||
|
$login->logout(['admin' => true]);
|
||||||
|
$this->form->reset();
|
||||||
|
|
||||||
|
return $this->createRedirectResponse('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$post = $this->getPost();
|
$post = $this->getPost();
|
||||||
$data = $post['data'] ?? [];
|
$data = $post['data'] ?? [];
|
||||||
|
|
||||||
$login = $this->getLogin();
|
|
||||||
try {
|
try {
|
||||||
$twoFa = $login->twoFactorAuth();
|
$twoFa = $login->twoFactorAuth();
|
||||||
} catch (TwoFactorAuthException $e) {
|
} catch (TwoFactorAuthException $e) {
|
||||||
|
|||||||
@@ -10,8 +10,6 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block form %}
|
{% block form %}
|
||||||
{% set form = forms['login'] %}
|
|
||||||
|
|
||||||
{% for field_name,field in form.fields %}
|
{% for field_name,field in form.fields %}
|
||||||
{% if field.type %}
|
{% if field.type %}
|
||||||
{% set field = field|merge({ name: field.name ?? field_name }) %}
|
{% set field = field|merge({ name: field.name ?? field_name }) %}
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
{% block form %}
|
{% block form %}
|
||||||
|
|
||||||
{% set form = forms['login-twofa'] %}
|
|
||||||
|
|
||||||
{% for field_name, field in form.fields %}
|
{% for field_name, field in form.fields %}
|
||||||
{% if field.type %}
|
{% if field.type %}
|
||||||
{% set field = field|merge({ name: field.name ?? field_name }) %}
|
{% set field = field|merge({ name: field.name ?? field_name }) %}
|
||||||
|
|||||||
Reference in New Issue
Block a user