Bartosz Dziewoński has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/257669

Change subject: mediawiki.Upload.BookletLayout: If the user can't upload, don't 
show them the form
......................................................................

mediawiki.Upload.BookletLayout: If the user can't upload, don't show them the 
form

Second attempt. First, reverted one: I6f68122b5399f4b8766825c752e964478ae7563d.

To improve in the future:
* Use a better error message when not all logged-in users can upload

Bug: T115866
Change-Id: I1ac083fd491c7445240b4fd9f7b3badacb2d2d37
---
M resources/Resources.php
M resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
2 files changed, 21 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/69/257669/1

diff --git a/resources/Resources.php b/resources/Resources.php
index bd1d404..a3b1a1d 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1184,6 +1184,7 @@
                ),
                'dependencies' => array(
                        'oojs-ui',
+                       'mediawiki.user',
                        'mediawiki.Upload',
                        'mediawiki.jqueryMsg',
                ),
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js 
b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
index 7401445..34e2f8f 100644
--- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
@@ -151,10 +151,29 @@
         * @return {jQuery.Promise} Promise resolved when everything is 
initialized
         */
        mw.Upload.BookletLayout.prototype.initialize = function () {
+               var
+                       apiPromise,
+                       booklet = this,
+                       deferred = $.Deferred();
+
                this.clear();
                this.upload = this.createUpload();
                this.setPage( 'upload' );
-               return $.Deferred().resolve().promise();
+
+               apiPromise = this.upload.apiPromise || $.Deferred.resolve( 
this.upload.api );
+               apiPromise.done( function ( api ) {
+                       // If the user can't upload anything, don't give them 
the option to.
+                       api.getUserInfo().done( function ( userInfo ) {
+                               if ( userInfo.rights.indexOf( 'upload' ) === -1 
) {
+                                       // TODO Use a better error message when 
not all logged-in users can upload
+                                       booklet.getPage( 'upload' 
).$element.msg( 'api-error-mustbeloggedin' );
+                               }
+                       } ).always( function () {
+                               deferred.resolve();
+                       } );
+               } );
+
+               return deferred.promise();
        };
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/257669
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1ac083fd491c7445240b4fd9f7b3badacb2d2d37
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to