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 +?>