diff --git a/includes/SpecialUserlogin.php b/includes/SpecialUserlogin.php index f84f6402240..fbe1e50c7f5 100644 --- a/includes/SpecialUserlogin.php +++ b/includes/SpecialUserlogin.php @@ -4,13 +4,17 @@ function wfSpecialUserlogin() { global $wpCreateaccount, $wpCreateaccountMail; global $wpLoginattempt, $wpMailmypassword; - global $action; + global $action, $_REQUEST; $fields = array( "wpName", "wpPassword", "wpName", "wpPassword", "wpRetype", "wpEmail" ); wfCleanFormFields( $fields ); - if ( isset( $wpCreateaccount ) ) { + $wpCookieCheck = $_REQUEST[ "wpCookieCheck" ]; + + if ( isset( $wpCookieCheck ) ) { + onCookieRedirectCheck( $wpCookieCheck ); + } else if ( isset( $wpCreateaccount ) ) { addNewAccount(); } else if ( isset( $wpCreateaccountMail ) ) { addNewAccountMailPassword(); @@ -68,18 +72,23 @@ function wfSpecialUserlogin() } $wgUser = $u; - successfulLogin( wfMsg( "welcomecreation", $wgUser->getName() ) ); + $wgUser->setCookies(); + + $up = new UserUpdate(); + array_push( $wgDeferredUpdateList, $up ); + + if (hasSessionCookie()) { + return successfulLogin( wfMsg( "welcomecreation", $wgUser->getName() ) ); + } else { + return cookieRedirectCheck("new"); + } } /* private */ function addNewAccountInternal() { global $wgUser, $wgOut, $wpPassword, $wpRetype, $wpName, $wpRemember; - global $wpEmail, $wgDeferredUpdateList; - - if (!cookieCheck()) { - return; - } + global $wpEmail; if (!$wgUser->isAllowedToCreateAccount()) { userNotPrivilegedMessage(); @@ -124,12 +133,9 @@ function wfSpecialUserlogin() /* private */ function processLogin() { global $wgUser, $wpName, $wpPassword, $wpRemember; + global $wgDeferredUpdateList; global $returnto; - if (!cookieCheck()) { - return; - } - if ( "" == $wpName ) { mainLoginForm( wfMsg( "noname" ) ); return; @@ -161,7 +167,16 @@ function wfSpecialUserlogin() $u->setOption( "rememberpassword", $r ); $wgUser = $u; - successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); + $wgUser->setCookies(); + + $up = new UserUpdate(); + array_push( $wgDeferredUpdateList, $up ); + + if (hasSessionCookie()) { + return successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); + } else { + return cookieRedirectCheck( "login" ); + } } /* private */ function mailPassword() @@ -225,24 +240,17 @@ function wfSpecialUserlogin() /* private */ function successfulLogin( $msg ) { - global $wgUser, $wgOut, $returnto; - global $wgDeferredUpdateList; + global $wgUser; + global $wgDeferredUpdateList; + global $wgOut, $returnto; - $wgUser->setCookies(); - $up = new UserUpdate(); - array_push( $wgDeferredUpdateList, $up ); - - $wgOut->setPageTitle( wfMsg( "loginsuccesstitle" ) ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); - $wgOut->setArticleFlag( false ); - $wgOut->addHTML( $msg . "\n
" ); - $wgOut->returnToMain(); + $wgOut->setPageTitle( wfMsg( "loginsuccesstitle" ) ); + $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setArticleFlag( false ); + $wgOut->addHTML( $msg . "\n
" ); + $wgOut->returnToMain(); } - - - - function userNotPrivilegedMessage() { global $wgOut, $wgUser, $wgLang; @@ -255,9 +263,6 @@ function userNotPrivilegedMessage() $wgOut->returnToMain( false ); } - - - /* private */ function mainLoginForm( $err ) { global $wgUser, $wgOut, $wgLang, $returnto; @@ -293,7 +298,8 @@ function userNotPrivilegedMessage() $wgOut->setArticleFlag( false ); if ( "" == $err ) { - $wgOut->addHTML( "
$lp
" ); } else { $wgOut->addHTML( "