aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Pchelko <ppchelko@wikimedia.org>2019-08-20 19:21:13 -0700
committerPetr Pchelko <ppchelko@wikimedia.org>2019-08-20 19:43:54 -0700
commit5bebae7f96d367f23909c3a7a2dacf1172ac7d98 (patch)
tree3f5609821d62e4cad0bed1b90629782024d19861
parent6c07a09f462147b35e8c76701b5dc6b6140310c8 (diff)
downloadmediawikicore-5bebae7f96d367f23909c3a7a2dacf1172ac7d98.tar.gz
mediawikicore-5bebae7f96d367f23909c3a7a2dacf1172ac7d98.zip
Remove usages of deprecated User::getRights.
Bug: T220191 Change-Id: Ia7472cf61765fe5fee9ae72cfa9b7060565dbe87
-rw-r--r--includes/api/ApiQueryUserInfo.php3
-rw-r--r--includes/api/ApiQueryUsers.php3
-rw-r--r--tests/phpunit/includes/Permissions/PermissionManagerTest.php13
-rw-r--r--tests/phpunit/includes/api/ApiTokensTest.php6
-rw-r--r--tests/phpunit/includes/user/UserTest.php2
5 files changed, 18 insertions, 9 deletions
diff --git a/includes/api/ApiQueryUserInfo.php b/includes/api/ApiQueryUserInfo.php
index ba7280da105c..5edf83eda2eb 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 66d8db4987b1..8e26d37e0889 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 8108639f21a0..86942fd8d1ce 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 1f7c00b0a88e..b4144fdd9c09 100644
--- a/tests/phpunit/includes/api/ApiTokensTest.php
+++ b/tests/phpunit/includes/api/ApiTokensTest.php
@@ -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 );
diff --git a/tests/phpunit/includes/user/UserTest.php b/tests/phpunit/includes/user/UserTest.php
index 62e8e2364d62..f48385d17ab6 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() {