Regression: Fixed broken 2FA form [#2109]

This commit is contained in:
Matias Griese
2021-04-07 14:14:04 +03:00
parent c4d90bfcd3
commit 9fca08ab43
5 changed files with 13 additions and 12 deletions

View File

@@ -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

View File

@@ -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($twig->twig_vars['form'])) {
} elseif (isset($header->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));

View File

@@ -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) {

View File

@@ -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 }) %}

View File

@@ -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 }) %}