Remove usages of deprecated User::getRights.
authorPetr Pchelko <ppchelko@wikimedia.org>
Wed, 21 Aug 2019 02:21:13 +0000 (19:21 -0700)
committerPetr Pchelko <ppchelko@wikimedia.org>
Wed, 21 Aug 2019 02:43:54 +0000 (19:43 -0700)
Bug: T220191
Change-Id: Ia7472cf61765fe5fee9ae72cfa9b7060565dbe87

includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
tests/phpunit/includes/Permissions/PermissionManagerTest.php
tests/phpunit/includes/api/ApiTokensTest.php
tests/phpunit/includes/user/UserTest.php

index ba7280d..5edf83e 100644 (file)
@@ -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
                }
index 66d8db4..8e26d37 100644 (file)
@@ -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;
index 8108639..86942fd 100644 (file)
@@ -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 );
index 1f7c00b..b4144fd 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * @group API
  * @group Database
@@ -18,7 +20,9 @@ class ApiTokensTest extends ApiTestCase {
        protected function runTokenTest( TestUser $user ) {
                $tokens = $this->getTokenList( $user );
 
-               $rights = $user->getUser()->getRights();
+               $rights = MediaWikiServices::getInstance()
+                       ->getPermissionManager()
+                       ->getUserPermissions( $user->getUser() );
 
                $this->assertArrayHasKey( 'edittoken', $tokens );
                $this->assertArrayHasKey( 'movetoken', $tokens );
index 62e8e23..f48385d 100644 (file)
@@ -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() {