(bug 5377) Do not auto-login when creating an account as another user
authorRob Church <robchurch@users.mediawiki.org>
Sun, 30 Apr 2006 01:59:56 +0000 (01:59 +0000)
committerRob Church <robchurch@users.mediawiki.org>
Sun, 30 Apr 2006 01:59:56 +0000 (01:59 +0000)
RELEASE-NOTES
includes/SpecialUserlogin.php
languages/Messages.php

index ee66cde..8bb3d64 100644 (file)
@@ -151,7 +151,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 5764) Friulian translation updated
 * (bug 5757) Fix premature cutoff in LanguageConverter with extra end markers
 * (bug 5516) Show appropriate "return to" link on blocked page
-
+* (bug 5377) Do not auto-login when creating an account as another user
 
 == Compatibility ==
 
index caedffb..1fdf975 100644 (file)
@@ -135,27 +135,41 @@ class LoginForm {
         */
        function addNewAccount() {
                global $wgUser, $wgEmailAuthentication;
-
+               
+               # Create the account and abort if there's a problem doing so
                $u = $this->addNewAccountInternal();
-
-               if ($u == NULL) {
+               if( $u == NULL )
                        return;
-               }
-
-               $wgUser = $u;
-               $wgUser->setCookies();
-
-               $wgUser->saveSettings();
-               if( $wgEmailAuthentication && $wgUser->isValidEmailAddr( $wgUser->getEmail() ) ) {
-                       $wgUser->sendConfirmationMail();
-               }
-
+                       
+               # Save user settings and send out an email authentication message if needed
+               $u->saveSettings();
+               if( $wgEmailAuthentication && User::isValidEmailAddr( $u->getEmail() ) )
+                       $u->sendConfirmationMail();
+                       
+               # Call hooks
                wfRunHooks( 'AddNewAccount', array( $u ) );
-
-               if( $this->hasSessionCookie() ) {
-                       return $this->successfulLogin( wfMsg( 'welcomecreation', $wgUser->getName() ), false );
+               
+               # If not logged in, assume the new account as the current one and set session cookies
+               # then show a "welcome" message or a "need cookies" message as needed
+               if( $wgUser->isAnon() ) {
+                       $wgUser = $u;
+                       $wgUser->setCookies();
+                       if( $this->hasSessionCookie() ) {
+                               return $this->successfulLogin( wfMsg( 'welcomecreation', $wgUser->getName() ), false );
+                       } else {
+                               return $this->cookieRedirectCheck( 'new' );
+                       }
                } else {
-                       return $this->cookieRedirectCheck( 'new' );
+                       # Confirm that the account was created
+                       global $wgOut;
+                       $skin = $wgUser->getSkin();
+                       $self = Title::makeTitle( NS_SPECIAL, 'Userlogin' );
+                       $wgOut->setPageTitle( wfMsgHtml( 'accountcreated' ) );
+                       $wgOut->setArticleRelated( false );
+                       $wgOut->setRobotPolicy( 'noindex,nofollow' );
+                       $wgOut->addHtml( wfMsgWikiHtml( 'accountcreatedtext', $u->getName() ) );
+                       $wgOut->returnToMain( $self->getPrefixedText() );
+                       return true;
                }
        }
 
index bb5dca4..40307eb 100644 (file)
@@ -432,6 +432,8 @@ will be sent for any of the following features.',
 'emailconfirmlink' => 'Confirm your e-mail address',
 'invalidemailaddress'  => 'The e-mail address cannot be accepted as it appears to have an invalid
 format. Please enter a well-formatted address or empty that field.',
+'accountcreated' => 'Account created',
+'accountcreatedtext' => 'The user account for $1 has been created.',
 
 # Edit page toolbar
 'bold_sample'=>'Bold text',