X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialUserlogin.php;h=32799e55ab891065c6d97b95d159bc1fdf587bbb;hb=aeeec5397bb8d3b6fa9ad407a5fd7a102ef7f70f;hp=5062ac5b1d5626af05c37ae0d6c81d3adb621dc3;hpb=014093acc4e0c277d0d92fdc54fb620210d6ec8a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialUserlogin.php b/includes/SpecialUserlogin.php index 5062ac5b1d..32799e55ab 100644 --- a/includes/SpecialUserlogin.php +++ b/includes/SpecialUserlogin.php @@ -5,415 +5,486 @@ require_once('UserMailer.php'); function wfSpecialUserlogin() { global $wgCommandLineMode; + global $wgRequest; if( !$wgCommandLineMode && !isset( $_COOKIE[ini_get("session.name")] ) ) { User::SetupSession(); } - $fields = array( "wpName", "wpPassword", "wpName", - "wpPassword", "wpRetype" ); - # FIXME: UGLY HACK - foreach( $fields as $x ) { - $_REQUEST[$x] = $wgRequest->getText( $x ); + $form = new LoginForm( $wgRequest ); + $form->execute(); +} + +class LoginForm { + var $mName, $mPassword, $mRetype, $mReturnto, $mCookieCheck, $mPosted; + var $mAction, $mCreateaccount, $mCreateaccountMail, $mMailmypassword; + var $mLoginattempt, $mRemember, $mEmail; + + function LoginForm( &$request ) { + global $wgLang, $wgAllowRealName; + + $this->mName = $request->getText( 'wpName' ); + $this->mPassword = $request->getText( 'wpPassword' ); + $this->mRetype = $request->getText( 'wpRetype' ); + $this->mReturnto = $request->getVal( 'returnto' ); + $this->mCookieCheck = $request->getVal( "wpCookieCheck" ); + $this->mPosted = $request->wasPosted(); + $this->mCreateaccount = $request->getCheck( 'wpCreateaccount' ); + $this->mCreateaccountMail = $request->getCheck( 'wpCreateaccountMail' ); + $this->mMailmypassword = $request->getCheck( 'wpMailmypassword' ); + $this->mLoginattempt = $request->getCheck( 'wpLoginattempt' ); + $this->mAction = $request->getVal( 'action' ); + $this->mRemember = $request->getCheck( 'wpRemember' ); + $this->mEmail = $request->getText( 'wpEmail' ); + if ($wgAllowRealName) { + $this->mRealName = $request->getText( 'wpRealName' ); + } else { + $this->mRealName = ''; + } + + # When switching accounts, it sucks to get automatically logged out + if( $this->mReturnto == $wgLang->specialPage( "Userlogout" ) ) { + $this->mReturnto = ""; + } } - # When switching accounts, it sucks to get automatically logged out - global $wgLang; - if( $_REQUEST['returnto'] == $wgLang->specialPage( "Userlogout" ) ) $_REQUEST['returnto'] = ""; - - $wpCookieCheck = $_REQUEST[ "wpCookieCheck" ]; - - if ( isset( $wpCookieCheck ) ) { - onCookieRedirectCheck( $wpCookieCheck ); - } else if ( isset( $_REQUEST['wpCreateaccount'] ) ) { - addNewAccount(); - } else if ( isset( $_REQUEST['wpCreateaccountMail'] ) ) { - addNewAccountMailPassword(); - } else if ( isset( $_REQUEST['wpMailmypassword'] ) ) { - mailPassword(); - } else if ( "submit" == $_REQUEST['action'] || array_key_exists('wpLoginattempt', $_REQUEST) ) { - processLogin(); - } else { - mainLoginForm( "" ); + function execute() { + if ( !is_null( $this->mCookieCheck ) ) { + $this->onCookieRedirectCheck( $this->mCookieCheck ); + } else if( $this->mPosted ) { + if( $this->mCreateaccount ) { + return $this->addNewAccount(); + } else if ( $this->mCreateaccountMail ) { + return $this->addNewAccountMailPassword(); + } else if ( $this->mMailmypassword ) { + return $this->mailPassword(); + } else if ( ( "submit" == $this->mAction ) || $this->mLoginattempt ) { + return $this->processLogin(); + } + } + $this->mainLoginForm( "" ); } -} + /* private */ function addNewAccountMailPassword() + { + global $wgOut; + + if ("" == $this->mEmail) { + $this->mainLoginForm( wfMsg( "noemail", $this->mName ) ); + return; + } -/* private */ function addNewAccountMailPassword() -{ - global $wgOut; - - if ("" == $_REQUEST['wpEmail']) { - mainLoginForm( wfMsg( "noemail", $_REQUEST['wpName'] ) ); - return; - } + $u = $this->addNewaccountInternal(); - $u = addNewaccountInternal(); + if ($u == NULL) { + return; + } - if ($u == NULL) { - return; - } + $u->saveSettings(); + $error = $this->mailPasswordInternal($u); - $u->saveSettings(); - if (mailPasswordInternal($u) == NULL) { - return; + $wgOut->setPageTitle( wfMsg( "accmailtitle" ) ); + $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setArticleRelated( false ); + + if ( $error === "" ) { + $wgOut->addWikiText( wfMsg( "accmailtext", $u->getName(), $u->getEmail() ) ); + $wgOut->returnToMain( false ); + } else { + $this->mainLoginForm( wfMsg( "mailerror", $error ) ); + } + + $u = 0; } - $wgOut->setPageTitle( wfMsg( "accmailtitle" ) ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); - $wgOut->setArticleRelated( false ); - $wgOut->addWikiText( wfMsg( "accmailtext", $u->getName(), $u->getEmail() ) ); - $wgOut->returnToMain( false ); + /* private */ function addNewAccount() + { + global $wgUser, $wgOut; + global $wgDeferredUpdateList; - $u = 0; -} + $u = $this->addNewAccountInternal(); + if ($u == NULL) { + return; + } -/* private */ function addNewAccount() -{ - global $wgUser, $wgOut; - global $wgDeferredUpdateList; + $wgUser = $u; + $wgUser->setCookies(); - $u = addNewAccountInternal(); + $up = new UserUpdate(); + array_push( $wgDeferredUpdateList, $up ); - if ($u == NULL) { - return; + if( $this->hasSessionCookie() ) { + return $this->successfulLogin( wfMsg( "welcomecreation", $wgUser->getName() ) ); + } else { + return $this->cookieRedirectCheck( "new" ); + } } - $wgUser = $u; - $wgUser->setCookies(); - $up = new UserUpdate(); - array_push( $wgDeferredUpdateList, $up ); + /* private */ function addNewAccountInternal() + { + global $wgUser, $wgOut; + global $wgMaxNameChars; + global $wgMemc, $wgAccountCreationThrottle, $wgDBname, $wgIP; - if( hasSessionCookie() ) { - return successfulLogin( wfMsg( "welcomecreation", $wgUser->getName() ) ); - } else { - return cookieRedirectCheck( "new" ); - } -} + if (!$wgUser->isAllowedToCreateAccount()) { + $this->userNotPrivilegedMessage(); + return; + } + if ( 0 != strcmp( $this->mPassword, $this->mRetype ) ) { + $this->mainLoginForm( wfMsg( "badretype" ) ); + return; + } + + $name = trim( $this->mName ); + $u = User::newFromName( $name ); + if ( ( "" == $name ) || + preg_match( "/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/", $name ) || + (strpos( $name, "/" ) !== false) || + (strlen( $name ) > $wgMaxNameChars) || + ucFirst($name) != $u->getName() ) + { + $this->mainLoginForm( wfMsg( "noname" ) ); + return; + } + if ( wfReadOnly() ) { + $wgOut->readOnlyPage(); + return; + } + + if ( 0 != $u->idForName() ) { + $this->mainLoginForm( wfMsg( "userexists" ) ); + return; + } -/* private */ function addNewAccountInternal() -{ - global $wgUser, $wgOut; - global $wgMaxNameChars; + if ( $wgAccountCreationThrottle ) { + $key = "$wgDBname:acctcreate:ip:$wgIP"; + $value = $wgMemc->incr( $key ); + if ( !$value ) { + $wgMemc->set( $key, 1, 86400 ); + } + if ( $value > $wgAccountCreationThrottle ) { + $this->throttleHit( $wgAccountCreationThrottle ); + return; + } + } - if (!$wgUser->isAllowedToCreateAccount()) { - userNotPrivilegedMessage(); - return; - } + $u->addToDatabase(); + $u->setPassword( $this->mPassword ); + $u->setEmail( $this->mEmail ); + $u->setRealName( $this->mRealName ); - if ( 0 != strcmp( $_REQUEST['wpPassword'], $_REQUEST['wpRetype'] ) ) { - mainLoginForm( wfMsg( "badretype" ) ); - return; - } - - $name = trim( $_REQUEST['wpName'] ); - if ( ( "" == $name ) || - preg_match( "/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/", $name ) || - (strpos( $name, "/" ) !== false) || - (strlen( $name ) > $wgMaxNameChars) ) - { - mainLoginForm( wfMsg( "noname" ) ); - return; - } - if ( wfReadOnly() ) { - $wgOut->readOnlyPage(); - return; - } - $u = User::newFromName( $name ); - - if ( 0 != $u->idForName() ) { - mainLoginForm( wfMsg( "userexists" ) ); - return; + if ( $this->mRemember ) { $r = 1; } + else { $r = 0; } + $u->setOption( "rememberpassword", $r ); + + return $u; } - $u->addToDatabase(); - $u->setPassword( $_REQUEST['wpPassword'] ); - $u->setEmail( $_REQUEST['wpEmail'] ); - if ( 1 == $_REQUEST['wpRemember'] ) { $r = 1; } - else { $r = 0; } - $u->setOption( "rememberpassword", $r ); - - return $u; -} + /* private */ function processLogin() + { + global $wgUser; + global $wgDeferredUpdateList; -/* private */ function processLogin() -{ - global $wgUser; - global $wgDeferredUpdateList; - - if ( "" == $_REQUEST['wpName'] ) { - mainLoginForm( wfMsg( "noname" ) ); - return; - } - $u = User::newFromName( $_REQUEST['wpName'] ); - $id = $u->idForName(); - if ( 0 == $id ) { - mainLoginForm( wfMsg( "nosuchuser", $u->getName() ) ); - return; - } - $u->setId( $id ); - $u->loadFromDatabase(); - $ep = $u->encryptPassword( $_REQUEST['wpPassword'] ); - if ( 0 != strcmp( $ep, $u->getPassword() ) ) { - if ( 0 != strcmp( $ep, $u->getNewpassword() ) ) { - mainLoginForm( wfMsg( "wrongpassword" ) ); + if ( "" == $this->mName ) { + $this->mainLoginForm( wfMsg( "noname" ) ); + return; + } + $u = User::newFromName( $this->mName ); + $id = $u->idForName(); + if ( 0 == $id ) { + $this->mainLoginForm( wfMsg( "nosuchuser", $u->getName() ) ); + return; + } + $u->setId( $id ); + $u->loadFromDatabase(); + if (!$u->checkPassword( $this->mPassword )) { + $this->mainLoginForm( wfMsg( "wrongpassword" ) ); return; } - } - # We've verified now, update the real record - # - if ( 1 == $_REQUEST['wpRemember'] ) { - $r = 1; - $u->setCookiePassword( $_REQUEST['wpPassword'] ); - } else { - $r = 0; - } - $u->setOption( "rememberpassword", $r ); + # We've verified now, update the real record + # + if ( $this->mRemember ) { + $r = 1; + $u->setCookiePassword( $this->mPassword ); + } else { + $r = 0; + } + $u->setOption( "rememberpassword", $r ); - $wgUser = $u; - $wgUser->setCookies(); + $wgUser = $u; + $wgUser->setCookies(); - $up = new UserUpdate(); - array_push( $wgDeferredUpdateList, $up ); + $up = new UserUpdate(); + array_push( $wgDeferredUpdateList, $up ); - if( hasSessionCookie() ) { - return successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); - } else { - return cookieRedirectCheck( "login" ); + if( $this->hasSessionCookie() ) { + return $this->successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); + } else { + return $this->cookieRedirectCheck( "login" ); + } } -} -/* private */ function mailPassword() -{ - global $wgUser, $wgDeferredUpdateList, $wgOutputEncoding; - global $wgCookiePath, $wgCookieDomain, $wgDBname; + /* private */ function mailPassword() + { + global $wgUser, $wgDeferredUpdateList, $wgOutputEncoding; + global $wgCookiePath, $wgCookieDomain, $wgDBname; - if ( "" == $_REQUEST['wpName'] ) { - mainLoginForm( wfMsg( "noname" ) ); - return; - } - $u = User::newFromName( $_REQUEST['wpName'] ); - $id = $u->idForName(); - if ( 0 == $id ) { - mainLoginForm( wfMsg( "nosuchuser", $u->getName() ) ); - return; - } - $u->setId( $id ); - $u->loadFromDatabase(); + if ( "" == $this->mName ) { + $this->mainLoginForm( wfMsg( "noname" ) ); + return; + } + $u = User::newFromName( $this->mName ); + $id = $u->idForName(); + if ( 0 == $id ) { + $this->mainLoginForm( wfMsg( "nosuchuser", $u->getName() ) ); + return; + } + $u->setId( $id ); + $u->loadFromDatabase(); + + $error = $this->mailPasswordInternal( $u ); + if ($error === "") { + $this->mainLoginForm( wfMsg( "passwordsent", $u->getName() ) ); + } else { + $this->mainLoginForm( wfMsg( "mailerror", $error ) ); + } - if (mailPasswordInternal($u) == NULL) { - return; } - mainLoginForm( wfMsg( "passwordsent", $u->getName() ) ); -} + /* private */ function mailPasswordInternal( $u ) + { + global $wgDeferredUpdateList, $wgOutputEncoding; + global $wgPasswordSender, $wgDBname, $wgIP; + global $wgCookiePath, $wgCookieDomain; -/* private */ function mailPasswordInternal( $u ) -{ - global $wgDeferredUpdateList, $wgOutputEncoding; - global $wgPasswordSender, $wgDBname, $wgIP; + if ( "" == $u->getEmail() ) { + $this->mainLoginForm( wfMsg( "noemail", $u->getName() ) ); + return; + } + $np = User::randomPassword(); + $u->setNewpassword( $np ); - if ( "" == $u->getEmail() ) { - mainLoginForm( wfMsg( "noemail", $u->getName() ) ); - return; - } - $np = User::randomPassword(); - $u->setNewpassword( $np ); + setcookie( "{$wgDBname}Password", "", time() - 3600, $wgCookiePath, $wgCookieDomain ); + $u->saveSettings(); - setcookie( "{$wgDBname}Password", "", time() - 3600, $wgCookiePath, $wgCookieDomain ); - $u->saveSettings(); + $ip = $wgIP; + if ( "" == $ip ) { $ip = "(Unknown)"; } - $ip = $wgIP; - if ( "" == $ip ) { $ip = "(Unknown)"; } + $m = wfMsg( "passwordremindertext", $ip, $u->getName(), $np ); - $m = wfMsg( "passwordremindertext", $ip, $u->getName(), $np ); + $error = userMailer( $u->getEmail(), $wgPasswordSender, wfMsg( "passwordremindertitle" ), $m ); + + return $error; + } - userMailer( $u->getEmail(), $wgPasswordSender, wfMsg( "passwordremindertitle" ), $m ); - - return $u; -} + /* private */ function successfulLogin( $msg ) + { + global $wgUser; + global $wgDeferredUpdateList; + global $wgOut; + + $wgOut->setPageTitle( wfMsg( "loginsuccesstitle" ) ); + $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setArticleRelated( false ); + $wgOut->addHTML( $msg ); + $wgOut->returnToMain(); + } -/* private */ function successfulLogin( $msg ) -{ - global $wgUser; - global $wgDeferredUpdateList; - global $wgOut; - - $wgOut->setPageTitle( wfMsg( "loginsuccesstitle" ) ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); - $wgOut->setArticleRelated( false ); - $wgOut->addHTML( $msg . "\n

" ); - $wgOut->returnToMain(); -} + function userNotPrivilegedMessage() + { + global $wgOut, $wgUser, $wgLang; + + $wgOut->setPageTitle( wfMsg( "whitelistacctitle" ) ); + $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setArticleRelated( false ); + + $wgOut->addWikiText( wfMsg( "whitelistacctext" ) ); + + $wgOut->returnToMain( false ); + } -function userNotPrivilegedMessage() -{ - global $wgOut, $wgUser, $wgLang; - - $wgOut->setPageTitle( wfMsg( "whitelistacctitle" ) ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); - $wgOut->setArticleRelated( false ); + /* private */ function mainLoginForm( $err ) + { + global $wgUser, $wgOut, $wgLang; + global $wgDBname, $wgAllowRealName; + + $le = wfMsg( "loginerror" ); + $yn = wfMsg( "yourname" ); + $yp = wfMsg( "yourpassword" ); + $ypa = wfMsg( "yourpasswordagain" ); + $rmp = wfMsg( "remembermypassword" ); + $nuo = wfMsg( "newusersonly" ); + $li = wfMsg( "login" ); + $ca = wfMsg( "createaccount" ); + $cam = wfMsg( "createaccountmail" ); + $ye = wfMsg( "youremail" ); + if ($wgAllowRealName) { + $yrn = wfMsg( "yourrealname" ); + } else { + $yrn = ''; + } + $efl = wfMsg( "emailforlost" ); + $mmp = wfMsg( "mailmypassword" ); + $endText = wfMsg( "loginend" ); - $wgOut->addWikiText( wfMsg( "whitelistacctext" ) ); - - $wgOut->returnToMain( false ); -} + if ( $endText = "<loginend>" ) { + $endText = ""; + } -/* private */ function mainLoginForm( $err ) -{ - global $wgUser, $wgOut, $wgLang; - global $HTTP_COOKIE_VARS, $wgDBname; - - $le = wfMsg( "loginerror" ); - $yn = wfMsg( "yourname" ); - $yp = wfMsg( "yourpassword" ); - $ypa = wfMsg( "yourpasswordagain" ); - $rmp = wfMsg( "remembermypassword" ); - $nuo = wfMsg( "newusersonly" ); - $li = wfMsg( "login" ); - $ca = wfMsg( "createaccount" ); - $cam = wfMsg( "createaccountmail" ); - $ye = wfMsg( "youremail" ); - $efl = wfMsg( "emailforlost" ); - $mmp = wfMsg( "mailmypassword" ); - $endText = wfMsg( "loginend" ); - - if ( $endText = "<loginend>" ) { - $endText = ""; - } + if ( "" == $this->mName ) { + if ( 0 != $wgUser->getID() ) { + $this->mName = $wgUser->getName(); + } else { + $this->mName = @$_COOKIE["{$wgDBname}UserName"]; + } + } - $name = $_REQUEST['wpName']; - if ( "" == $name ) { - if ( 0 != $wgUser->getID() ) { - $name = $wgUser->getName(); + $wgOut->setPageTitle( wfMsg( "userlogin" ) ); + $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setArticleRelated( false ); + + if ( "" == $err ) { + $lp = wfMsg( "loginprompt" ); + $wgOut->addHTML( "

$li:

\n

$lp

" ); } else { - $name = $HTTP_COOKIE_VARS["{$wgDBname}UserName"]; + $wgOut->addHTML( "

$le:

\n$err\n" ); } + if ( 1 == $wgUser->getOption( "rememberpassword" ) ) { + $checked = " checked"; + } else { + $checked = ""; + } + + $q = "action=submit"; + if ( !empty( $this->mReturnto ) ) { + $q .= "&returnto=" . wfUrlencode( $this->mReturnto ); + } + + $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" ); + $action = $titleObj->escapeLocalUrl( $q ); + + $encName = wfEscapeHTML( $this->mName ); + $encPassword = wfEscapeHTML( $this->mPassword ); + $encRetype = wfEscapeHTML( $this->mRetype ); + $encEmail = wfEscapeHTML( $this->mEmail ); + $encRealName = wfEscapeHTML( $this->mRealName ); + + if ($wgUser->getID() != 0) { + $cambutton = ""; + } else { + $cambutton = ""; + } + + $wgOut->addHTML( " +
+ + + + + + + + + + "); + + if ($wgUser->isAllowedToCreateAccount()) { + $encRetype = htmlspecialchars( $this->mRetype ); + $encEmail = htmlspecialchars( $this->mEmail ); + $wgOut->addHTML(" + + + + + "); + + if ($wgAllowRealName) { + $wgOut->addHTML(" + + + "); } - $pwd = $_REQUEST['wpPassword']; - - $wgOut->setPageTitle( wfMsg( "userlogin" ) ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); - $wgOut->setArticleRelated( false ); - - if ( "" == $err ) { - $lp = wfMsg( "loginprompt" ); - $wgOut->addHTML( "

$li:

\n

$lp

" ); - } else { - $wgOut->addHTML( "

$le:

\n$err\n" ); - } - if ( 1 == $wgUser->getOption( "rememberpassword" ) ) { - $checked = " checked"; - } else { - $checked = ""; - } - $q = "action=submit"; - if ( "" != $_REQUEST['returnto'] ) { $q .= "&returnto=" . wfUrlencode($_REQUEST['returnto']); } - $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" ); - $action = $titleObj->escapeLocalUrl( $q ); - - $encName = wfEscapeHTML( $name ); - $encPassword = wfEscapeHTML( $pwd ); - $encRetype = wfEscapeHTML( $_REQUEST['wpRetype'] ); - $encEmail = wfEscapeHTML( $_REQUEST['wpEmail'] ); - - if ($wgUser->getID() != 0) { - $cambutton = ""; + + $wgOut->addHTML(""); + } + + $wgOut->addHTML(" + +
$yn: + + + +
$yp: + + + +
 
$ypa: + + $nuo
$ye: + +  
$yrn: + + + + $cambutton +
 
+

$efl
+

+
+
\n" ); + $wgOut->addHTML( $endText ); } - $wgOut->addHTML( " -
- - - - - - - - - -"); - - if ($wgUser->isAllowedToCreateAccount()) { - $encRetype = htmlspecialchars( $_REQUEST['wpRetype'] ); - $encEmail = htmlspecialchars( $_REQUEST['wpCreateAccount'] ); -$wgOut->addHTML(" - - - - -"); + /* private */ function hasSessionCookie() + { + global $wgDisableCookieCheck; + return ( $wgDisableCookieCheck ) ? true : ( "" != $_COOKIE[session_name()] ); } + + /* private */ function cookieRedirectCheck( $type ) + { + global $wgOut, $wgLang; - $wgOut->addHTML(" - -
$yn: - - - -
$yp: - - - -
 
$ypa: - -$nuo
$ye: - - - -$cambutton -
 
-

$efl
- -

-
\n" ); - $wgOut->addHTML( $endText ); -} - -/* private */ function hasSessionCookie() -{ - global $wgDisableCookieCheck; - return ( $wgDisableCookieCheck ) ? true : ( "" != $_COOKIE[session_name()] ); -} - -/* private */ function cookieRedirectCheck( $type ) -{ - global $wgOut, $wgLang; - - $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" ); - $check = $titleObj->getFullURL( "wpCookieCheck=$type" ); - - return $wgOut->redirect( $check ); -} + $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" ); + $check = $titleObj->getFullURL( "wpCookieCheck=$type" ); -/* private */ function onCookieRedirectCheck( $type ) { - global $wgUser; + return $wgOut->redirect( $check ); + } - if ( !hasSessionCookie() ) { - if ( $type == "new" ) { - return mainLoginForm( wfMsg( "nocookiesnew" ) ); - } else if ( $type == "login" ) { - return mainLoginForm( wfMsg( "nocookieslogin" ) ); + /* private */ function onCookieRedirectCheck( $type ) { + global $wgUser; + + if ( !$this->hasSessionCookie() ) { + if ( $type == "new" ) { + return $this->mainLoginForm( wfMsg( "nocookiesnew" ) ); + } else if ( $type == "login" ) { + return $this->mainLoginForm( wfMsg( "nocookieslogin" ) ); + } else { + # shouldn't happen + return $this->mainLoginForm( wfMsg( "error" ) ); + } } else { - # shouldn't happen - return mainLoginForm( wfMsg( "error" ) ); + return $this->successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); } - } else { - return successfulLogin( wfMsg( "loginsuccess", $wgUser->getName() ) ); } -} + /* private */ function throttleHit( $limit ) { + global $wgOut; + + $wgOut->addWikiText( wfMsg( 'acct_creation_throttle_hit', $limit ) ); + } +} ?>