Follow-up r83080: make ApiUploadTest really work this time
authorAlexandre Emsenhuber <ialex@users.mediawiki.org>
Fri, 11 Mar 2011 20:04:17 +0000 (20:04 +0000)
committerAlexandre Emsenhuber <ialex@users.mediawiki.org>
Fri, 11 Mar 2011 20:04:17 +0000 (20:04 +0000)
includes/User.php
includes/api/ApiLogin.php

index 556252a..111ed3a 100644 (file)
@@ -2457,9 +2457,15 @@ class User {
 
        /**
         * Set the default cookies for this session on the user's client.
+        *
+        * @param $request WebRequest object to use; $wgRequest will be used if null
+        *        is passed.
         */
-       function setCookies() {
-               global $wgRequest;
+       function setCookies( $request = null ) {
+               if ( $request === null ) {
+                       global $wgRequest;
+                       $request = $wgRequest;
+               }
 
                $this->load();
                if ( 0 == $this->mId ) return;
@@ -2481,7 +2487,7 @@ class User {
                wfRunHooks( 'UserSetCookies', array( $this, &$session, &$cookies ) );
 
                foreach ( $session as $name => $value ) {
-                       $wgRequest->setSessionData( $name, $value );
+                       $request->setSessionData( $name, $value );
                }
                foreach ( $cookies as $name => $value ) {
                        if ( $value === false ) {
index 7c8eaff..afc353e 100644 (file)
@@ -75,7 +75,7 @@ class ApiLogin extends ApiBase {
                switch ( $authRes = $loginForm->authenticateUserData() ) {
                        case LoginForm::SUCCESS:
                                $wgUser->setOption( 'rememberpassword', 1 );
-                               $wgUser->setCookies();
+                               $wgUser->setCookies( $this->getMain()->getRequest() );
 
                                // Run hooks. FIXME: split back and frontend from this hook.
                                // FIXME: This hook should be placed in the backend