jenkins-bot has submitted this change and it was merged.

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(-)

Approvals:
  MarkTraceur: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/Resources.php b/resources/Resources.php
index fce4383..3bce665 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1186,6 +1186,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 47f4388..60c9991 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: merged
Gerrit-Change-Id: I1ac083fd491c7445240b4fd9f7b3badacb2d2d37
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz DziewoƄski <[email protected]>
Gerrit-Reviewer: Edokter <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to