From: Matthew Flaschen Date: Thu, 31 Mar 2016 20:50:28 +0000 (-0400) Subject: mediawiki.user: Use wgUserGroups for getGroups() rather than AJAX X-Git-Tag: 1.31.0-rc.0~7403^2 X-Git-Url: http://git.cyclocoop.org/data/%24oldEdit?a=commitdiff_plain;h=b6eb368015920b9cd2c690fdfd49477decc188d3;p=lhc%2Fweb%2Fwiklou.git mediawiki.user: Use wgUserGroups for getGroups() rather than AJAX Use wgUserGroups to implement getGroups, rather than an API request. wgUserGroups and ApiQueryUserInfo both use $user->getEffectiveGroups() unprocessed. mw.Api.plugin.user is still useful because rights are not available client-side, and it can be used for groups with ForeignApi. Change-Id: Id9c7805de1d02e267dbd2bba833e90a6df117dee --- diff --git a/resources/src/mediawiki/mediawiki.user.js b/resources/src/mediawiki/mediawiki.user.js index d2f2abd60a..0fdd9aaef2 100644 --- a/resources/src/mediawiki/mediawiki.user.js +++ b/resources/src/mediawiki/mediawiki.user.js @@ -241,10 +241,10 @@ * @return {jQuery.Promise} */ getGroups: function ( callback ) { - return getUserInfo().then( - function ( userInfo ) { return userInfo.groups; }, - function () { return []; } - ).done( callback ); + var userGroups = mw.config.get( 'wgUserGroups', [] ); + + // Uses promise for backwards compatibility + return $.Deferred().resolve( userGroups ).done( callback ); }, /** diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js index 04e002dd90..3332c08dc0 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js @@ -41,6 +41,8 @@ } ); QUnit.test( 'getUserInfos', 3, function ( assert ) { + mw.config.set( 'wgUserGroups', [ '*', 'user' ] ); + mw.user.getGroups( function ( groups ) { assert.deepEqual( groups, [ '*', 'user' ], 'Result' ); } ); @@ -55,7 +57,7 @@ this.server.respondWith( /meta=userinfo/, function ( request ) { request.respond( 200, { 'Content-Type': 'application/json' }, - '{ "query": { "userinfo": { "groups": [ "*", "user" ], "rights": [ "read", "edit", "createtalk" ] } } }' + '{ "query": { "userinfo": { "groups": [ "unused" ], "rights": [ "read", "edit", "createtalk" ] } } }' ); } );