From c4b366828ecf8b1271a489cbdabd0617a1c27e27 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Mon, 27 Nov 2017 16:15:28 +0000 Subject: [PATCH] FIX: Restore BackURL preservation on log out (closes #7636) --- src/Security/MemberAuthenticator/LogoutHandler.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Security/MemberAuthenticator/LogoutHandler.php b/src/Security/MemberAuthenticator/LogoutHandler.php index 1bbb253da..9b870a259 100644 --- a/src/Security/MemberAuthenticator/LogoutHandler.php +++ b/src/Security/MemberAuthenticator/LogoutHandler.php @@ -2,6 +2,7 @@ namespace SilverStripe\Security\MemberAuthenticator; +use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Control\HTTPResponse; use SilverStripe\Control\RequestHandler; @@ -109,6 +110,14 @@ class LogoutHandler extends RequestHandler return $this->redirect($backURL); } - return $this->redirect(Security::config()->get('login_url')); + $link = Security::config()->get('login_url'); + $referer = $this->getReturnReferer(); + if ($referer) { + $link = Controller::join_links($link, '?' . http_build_query([ + 'BackURL' => Director::makeRelative($referer) + ])); + } + + return $this->redirect($link); } }