From 5f0f9c48019536867991a16af6233666eb3648df Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Sun, 9 Nov 2008 22:46:21 +0000 Subject: [PATCH] Preserve BackURL get-variable on failed log-ins git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.2@65473 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- security/MemberLoginForm.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/security/MemberLoginForm.php b/security/MemberLoginForm.php index 3afa57923..96e8477d6 100644 --- a/security/MemberLoginForm.php +++ b/security/MemberLoginForm.php @@ -109,17 +109,19 @@ class MemberLoginForm extends LoginForm { } else { Session::set('SessionForms.MemberLoginForm.Email', $data['Email']); Session::set('SessionForms.MemberLoginForm.Remember', isset($data['Remember'])); - - if(isset($_REQUEST['BackURL']) && $backURL = $_REQUEST['BackURL']) { - Session::set('BackURL', $backURL); - } + + if(isset($_REQUEST['BackURL'])) $backURL = $_REQUEST['BackURL']; + else $backURL = null; + + if($backURL) Session::set('BackURL', $backURL); if($badLoginURL = Session::get("BadLoginURL")) { Director::redirect($badLoginURL); } else { // Show the right tab on failed login - Director::redirect(Director::absoluteURL(Security::Link("login")) . - '#' . $this->FormName() .'_tab'); + $loginLink = Director::absoluteURL(Security::Link("login")); + if($backURL) $loginLink .= '?BackURL=' . urlencode($backURL); + Director::redirect($loginLink . '#' . $this->FormName() .'_tab'); } } }