From 1b97769ea59c7354c7c764a0197f3bb5a271d43c Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 1 Dec 2017 16:08:52 -0700 Subject: [PATCH] Logout is one step now --- CHANGELOG.md | 2 ++ admin.php | 6 ++++++ classes/admin.php | 1 + classes/admincontroller.php | 6 ++++-- pages/admin/logout.md | 14 -------------- themes/grav/templates/login.html.twig | 6 ++++++ themes/grav/templates/logout.html.twig | 20 -------------------- 7 files changed, 19 insertions(+), 36 deletions(-) delete mode 100644 pages/admin/logout.md delete mode 100644 themes/grav/templates/logout.html.twig diff --git a/CHANGELOG.md b/CHANGELOG.md index 24b2a5c0..3f6a9976 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # v1.6.7 ## xx/xx/2017 +1. [](#new) + * Logout of admin goes straight to login form with a message (that then fades out) 1. [](#improved) * Added code to use new `GPM::loadRemoteGrav` if it exists in Gav [grav#1746](https://github.com/getgrav/grav/pull/1746) * Add vertical style for order field [#1253](https://github.com/getgrav/grav-plugin-admin/pull/1253) diff --git a/admin.php b/admin.php index 13b0c323..f6f817cc 100644 --- a/admin.php +++ b/admin.php @@ -527,6 +527,12 @@ class AdminPlugin extends Plugin break; } + + $flashData = $this->grav['session']->getFlashCookieObject(Admin::TMP_COOKIE_NAME); + + if (isset($flashData->message)) { + $this->grav['messages']->add($flashData->message, $flashData->status); + } } /** diff --git a/classes/admin.php b/classes/admin.php index 5e0fc00c..4111131e 100644 --- a/classes/admin.php +++ b/classes/admin.php @@ -34,6 +34,7 @@ define('LOGIN_REDIRECT_COOKIE', 'grav-login-redirect'); class Admin { const MEDIA_PAGINATION_INTERVAL = 20; + const TMP_COOKIE_NAME = 'tmp-admin-message'; /** * @var Grav diff --git a/classes/admincontroller.php b/classes/admincontroller.php index 7b1925e8..bc256290 100644 --- a/classes/admincontroller.php +++ b/classes/admincontroller.php @@ -691,10 +691,12 @@ class AdminController extends AdminBaseController */ protected function taskLogout() { - $language = $this->grav['user']->authenticated ? $this->grav['user']->language : ($this->grav['language']->getLanguage() ?: 'en'); + $message = $this->admin->translate('PLUGIN_ADMIN.LOGGED_OUT'); $this->admin->session()->invalidate()->start(); - $this->setRedirect('/logout/lang:' . $language); + $this->grav['session']->setFlashCookieObject(Admin::TMP_COOKIE_NAME, ['message' => $message, 'status' => 'info']); + + $this->setRedirect('/'); return true; } diff --git a/pages/admin/logout.md b/pages/admin/logout.md deleted file mode 100644 index 08152ebd..00000000 --- a/pages/admin/logout.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Dashboard Logout - -form: - fields: - - name: username - type: text - placeholder: PLUGIN_ADMIN.USERNAME - autofocus: true - - - name: password - type: password - placeholder: PLUGIN_ADMIN.PASSWORD ---- diff --git a/themes/grav/templates/login.html.twig b/themes/grav/templates/login.html.twig index ad4d5191..86dba798 100644 --- a/themes/grav/templates/login.html.twig +++ b/themes/grav/templates/login.html.twig @@ -31,6 +31,12 @@ {% endif %} + + {% endif %} {% endblock %} diff --git a/themes/grav/templates/logout.html.twig b/themes/grav/templates/logout.html.twig deleted file mode 100644 index 6687a65c..00000000 --- a/themes/grav/templates/logout.html.twig +++ /dev/null @@ -1,20 +0,0 @@ -{% embed 'partials/login.html.twig' with {title:'Grav Logout'} %} - {% block head %} - {{ parent() }} - - {% endblock %} - - {% block messages %}{% endblock %} - - {% block body %} - -
-

- {{ title }} -

- {{ admin.setMessage('PLUGIN_ADMIN.LOGGED_OUT'|tu(uri.param('lang'))) }} - {% include 'partials/messages.html.twig' %} -
- - {% endblock %} -{% endembed %}