From 1509d413e572c839bc43f92a83a0f93880000a26 Mon Sep 17 00:00:00 2001 From: Andrew O'Neil Date: Sun, 4 Nov 2007 21:30:57 +0000 Subject: [PATCH] #1457 - Redirection after login doesn't behave correctly if login fails (merged from 2.1.1 branch, r43601) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@44197 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- security/MemberLoginForm.php | 16 ++++++++++------ security/OpenID/OpenIDLoginForm.php | 12 +++++++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/security/MemberLoginForm.php b/security/MemberLoginForm.php index 1cd8e1330..4477c2a85 100644 --- a/security/MemberLoginForm.php +++ b/security/MemberLoginForm.php @@ -102,13 +102,17 @@ class MemberLoginForm extends LoginForm { if($backURL = $_REQUEST['BackURL']) { Session::clear("BackURL"); Director::redirect($backURL); - } else - Director::redirectBack(); - + } else { + Director::redirectBack(); + } } else { Session::set('SessionForms.MemberLoginForm.Email', $data['Email']); - Session::set('SessionForms.MemberLoginForm.Remember', - isset($data['Remember'])); + Session::set('SessionForms.MemberLoginForm.Remember', isset($data['Remember'])); + + if(isset($_REQUEST['BackURL']) && $backURL = $_REQUEST['BackURL']) { + Session::set('BackURL', $backURL); + } + if($badLoginURL = Session::get("BadLoginURL")) { Director::redirect($badLoginURL); } else { @@ -193,4 +197,4 @@ class MemberLoginForm extends LoginForm { } -?> \ No newline at end of file +?> diff --git a/security/OpenID/OpenIDLoginForm.php b/security/OpenID/OpenIDLoginForm.php index ab19d0780..7ba42050d 100644 --- a/security/OpenID/OpenIDLoginForm.php +++ b/security/OpenID/OpenIDLoginForm.php @@ -108,15 +108,17 @@ class OpenIDLoginForm extends LoginForm { OpenIDAuthenticator::authenticate($data, $this); // If the OpenID authenticator returns, an error occured! - Session::set('SessionForms.OpenIDLoginForm.OpenIDURL', - $data['OpenIDURL']); + Session::set('SessionForms.OpenIDLoginForm.OpenIDURL', $data['OpenIDURL']); + + if(isset($_REQUEST['BackURL']) && $backURL = $_REQUEST['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'); + Director::redirect(Director::absoluteURL(Security::Link("login")) . '#' . $this->FormName() .'_tab'); } } @@ -137,4 +139,4 @@ class OpenIDLoginForm extends LoginForm { } -?> \ No newline at end of file +?>