From 5bebae7f96d367f23909c3a7a2dacf1172ac7d98 Mon Sep 17 00:00:00 2001 From: Petr Pchelko Date: Tue, 20 Aug 2019 19:21:13 -0700 Subject: [PATCH] Remove usages of deprecated User::getRights. Bug: T220191 Change-Id: Ia7472cf61765fe5fee9ae72cfa9b7060565dbe87 --- includes/api/ApiQueryUserInfo.php | 3 +-- includes/api/ApiQueryUsers.php | 3 ++- .../includes/Permissions/PermissionManagerTest.php | 13 ++++++++----- tests/phpunit/includes/api/ApiTokensTest.php | 6 +++++- tests/phpunit/includes/user/UserTest.php | 2 ++ 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/includes/api/ApiQueryUserInfo.php b/includes/api/ApiQueryUserInfo.php index ba7280da10..5edf83eda2 100644 --- a/includes/api/ApiQueryUserInfo.php +++ b/includes/api/ApiQueryUserInfo.php @@ -159,8 +159,7 @@ class ApiQueryUserInfo extends ApiQueryBase { } if ( isset( $this->prop['rights'] ) ) { - // User::getRights() may return duplicate values, strip them - $vals['rights'] = array_values( array_unique( $user->getRights() ) ); + $vals['rights'] = $this->getPermissionManager()->getUserPermissions( $user ); ApiResult::setArrayType( $vals['rights'], 'array' ); // even if empty ApiResult::setIndexedTagName( $vals['rights'], 'r' ); // even if empty } diff --git a/includes/api/ApiQueryUsers.php b/includes/api/ApiQueryUsers.php index 66d8db4987..8e26d37e08 100644 --- a/includes/api/ApiQueryUsers.php +++ b/includes/api/ApiQueryUsers.php @@ -225,7 +225,8 @@ class ApiQueryUsers extends ApiQueryBase { } if ( isset( $this->prop['rights'] ) ) { - $data[$key]['rights'] = $user->getRights(); + $data[$key]['rights'] = $this->getPermissionManager() + ->getUserPermissions( $user ); } if ( $row->ipb_deleted ) { $data[$key]['hidden'] = true; diff --git a/tests/phpunit/includes/Permissions/PermissionManagerTest.php b/tests/phpunit/includes/Permissions/PermissionManagerTest.php index 8108639f21..86942fd8d1 100644 --- a/tests/phpunit/includes/Permissions/PermissionManagerTest.php +++ b/tests/phpunit/includes/Permissions/PermissionManagerTest.php @@ -1548,7 +1548,8 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $user = $this->getTestUser( [ 'unittesters', 'testwriters' ] )->getUser(); $userWrapper = TestingAccessWrapper::newFromObject( $user ); - $rights = MediaWikiServices::getInstance()->getPermissionManager() + $rights = MediaWikiServices::getInstance() + ->getPermissionManager() ->getUserPermissions( $user ); $this->assertContains( 'test', $rights, 'sanity check' ); $this->assertContains( 'runtest', $rights, 'sanity check' ); @@ -1556,13 +1557,14 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $this->assertNotContains( 'nukeworld', $rights, 'sanity check' ); // Add a hook manipluating the rights - $this->mergeMwGlobalArrayValue( 'wgHooks', [ 'UserGetRights' => [ function ( $user, &$rights ) { + $this->setTemporaryHook( 'UserGetRights', function ( $user, &$rights ) { $rights[] = 'nukeworld'; $rights = array_diff( $rights, [ 'writetest' ] ); - } ] ] ); + } ); $this->resetServices(); - $rights = MediaWikiServices::getInstance()->getPermissionManager() + $rights = MediaWikiServices::getInstance() + ->getPermissionManager() ->getUserPermissions( $user ); $this->assertContains( 'test', $rights ); $this->assertContains( 'runtest', $rights ); @@ -1585,7 +1587,8 @@ class PermissionManagerTest extends MediaWikiLangTestCase { $userWrapper->mRequest = $mockRequest; $this->resetServices(); - $rights = MediaWikiServices::getInstance()->getPermissionManager() + $rights = MediaWikiServices::getInstance() + ->getPermissionManager() ->getUserPermissions( $user ); $this->assertContains( 'test', $rights ); $this->assertNotContains( 'runtest', $rights ); diff --git a/tests/phpunit/includes/api/ApiTokensTest.php b/tests/phpunit/includes/api/ApiTokensTest.php index 1f7c00b0a8..b4144fdd9c 100644 --- a/tests/phpunit/includes/api/ApiTokensTest.php +++ b/tests/phpunit/includes/api/ApiTokensTest.php @@ -1,5 +1,7 @@ getTokenList( $user ); - $rights = $user->getUser()->getRights(); + $rights = MediaWikiServices::getInstance() + ->getPermissionManager() + ->getUserPermissions( $user->getUser() ); $this->assertArrayHasKey( 'edittoken', $tokens ); $this->assertArrayHasKey( 'movetoken', $tokens ); diff --git a/tests/phpunit/includes/user/UserTest.php b/tests/phpunit/includes/user/UserTest.php index 62e8e2364d..f48385d17a 100644 --- a/tests/phpunit/includes/user/UserTest.php +++ b/tests/phpunit/includes/user/UserTest.php @@ -105,6 +105,7 @@ class UserTest extends MediaWikiTestCase { } /** + * TODO: Remove. This is the same as PermissionManagerTest::testGetUserPermissions * @covers User::getRights */ public function testUserPermissions() { @@ -116,6 +117,7 @@ class UserTest extends MediaWikiTestCase { } /** + * TODO: Remove. This is the same as PermissionManagerTest::testGetUserPermissionsHooks * @covers User::getRights */ public function testUserGetRightsHooks() { -- 2.20.1