From 2281952d328eefb26fc1ad5d9578a30206f7e4c9 Mon Sep 17 00:00:00 2001 From: Mark Holmquist Date: Wed, 15 Jul 2015 15:41:36 -0500 Subject: [PATCH] Add a bailout method for getEditToken getEditToken is right handy for doing requests on the local wiki, but CentralAuth yells at you if you leave a token= parameter in the request, so we need to be able to turn this off. Change-Id: I6212c6aa2f52671f22e227950a37dde6b65d5316 --- .../src/mediawiki.api/mediawiki.api.upload.js | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/resources/src/mediawiki.api/mediawiki.api.upload.js b/resources/src/mediawiki.api/mediawiki.api.upload.js index f147ac85f6..6347828a42 100644 --- a/resources/src/mediawiki.api/mediawiki.api.upload.js +++ b/resources/src/mediawiki.api/mediawiki.api.upload.js @@ -154,7 +154,7 @@ * @return {jQuery.Promise} */ uploadWithIframe: function ( file, data ) { - var tokenPromise, + var tokenPromise = $.Deferred(), api = this, filenameFound = false, deferred = $.Deferred(), @@ -224,9 +224,14 @@ return $.Deferred().reject( 'Filename not included in file data.' ); } - tokenPromise = this.getEditToken().then( function ( token ) { - $form.append( getHiddenInput( 'token', token ) ); - } ); + if ( this.needToken() ) { + this.getEditToken().then( function ( token ) { + $form.append( getHiddenInput( 'token', token ) ); + tokenPromise.resolve(); + }, tokenPromise.reject ); + } else { + tokenPromise.resolve(); + } $( 'body' ).append( $form, $iframe ); @@ -239,7 +244,7 @@ * @param {Object} data */ uploadWithFormData: function ( file, data ) { - var xhr, tokenPromise, + var xhr, api = this, formData = new FormData(), deferred = $.Deferred(), @@ -286,13 +291,15 @@ xhr.open( 'POST', this.defaults.ajax.url, true ); - tokenPromise = this.getEditToken().then( function ( token ) { - formData.append( 'token', token ); - xhr.send( formData ); - }, function () { - // Mark the edit token as bad, it's been used. - api.badToken( 'edit' ); - } ); + if ( this.needToken() ) { + this.getEditToken().then( function ( token ) { + formData.append( 'token', token ); + xhr.send( formData ); + }, function () { + // Mark the edit token as bad, it's been used. + api.badToken( 'edit' ); + } ); + } return deferred.promise(); }, @@ -349,6 +356,10 @@ return finishUpload; } ); + }, + + needToken: function () { + return true; } } ); -- 2.20.1