Move User::getAllRights to PermissionManager.
authorPetr Pchelko <ppchelko@wikimedia.org>
Wed, 28 Aug 2019 17:31:34 +0000 (10:31 -0700)
committerdaniel <dkinzler@wikimedia.org>
Thu, 29 Aug 2019 13:38:26 +0000 (15:38 +0200)
Bug: T220191
Change-Id: I7f4bf7f6a85b01ffd7f9ea3991597f1bd40ab1f6

includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryContributors.php
includes/user/User.php
tests/phpunit/includes/Permissions/PermissionManagerTest.php
tests/phpunit/structure/AvailableRightsTest.php

index 023b88f..e0513e2 100644 (file)
@@ -356,7 +356,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                ApiBase::PARAM_ISMULTI => true,
                        ],
                        'rights' => [
-                               ApiBase::PARAM_TYPE => User::getAllRights(),
+                               ApiBase::PARAM_TYPE => $this->getPermissionManager()->getAllPermissions(),
                                ApiBase::PARAM_ISMULTI => true,
                        ],
                        'prop' => [
index fd2d199..a1945c4 100644 (file)
@@ -231,7 +231,7 @@ class ApiQueryContributors extends ApiQueryBase {
 
        public function getAllowedParams() {
                $userGroups = User::getAllGroups();
-               $userRights = User::getAllRights();
+               $userRights = $this->getPermissionManager()->getAllPermissions();
 
                return [
                        'group' => [
index 0553c92..b0ee5cb 100644 (file)
@@ -4864,8 +4864,7 @@ class User implements IDBAccessObject, UserIdentity {
        /**
         * Get a list of all available permissions.
         *
-        * @deprecated since 1.34, use MediaWikiServices::getInstance()->getPermissionManager()
-        *             ->getAllPermissions() instead
+        * @deprecated since 1.34, use PermissionManager::getAllPermissions() instead
         *
         * @return string[] Array of permission names
         */
index 44b7f67..3c22a23 100644 (file)
@@ -1866,6 +1866,22 @@ class PermissionManagerTest extends MediaWikiLangTestCase {
                        ->getNamespaceRestrictionLevels( $ns, $user ) );
        }
 
+       /**
+        * @covers \MediaWiki\Permissions\PermissionManager::getAllPermissions
+        */
+       public function testGetAllPermissions() {
+               $this->setMwGlobals( [
+                       'wgAvailableRights' => [ 'test_right' ]
+               ] );
+               $this->resetServices();
+               $this->assertContains(
+                       'test_right',
+                       MediaWikiServices::getInstance()
+                               ->getPermissionManager()
+                               ->getAllPermissions()
+               );
+       }
+
        /**
         * @covers \MediaWiki\Permissions\PermissionManager::getRightsCacheKey
         * @throws \Exception
index 2a6575a..2037036 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * Try to make sure that extensions register all rights in $wgAvailableRights
  * or via the 'UserGetAllRights' hook.
@@ -19,7 +21,7 @@ class AvailableRightsTest extends PHPUnit\Framework\TestCase {
        private function getAllVisibleRights() {
                global $wgGroupPermissions, $wgRevokePermissions;
 
-               $rights = User::getAllRights();
+               $rights = MediaWikiServices::getInstance()->getPermissionManager()->getAllPermissions();
 
                foreach ( $wgGroupPermissions as $permissions ) {
                        $rights = array_merge( $rights, array_keys( $permissions ) );
@@ -38,7 +40,7 @@ class AvailableRightsTest extends PHPUnit\Framework\TestCase {
        public function testAvailableRights() {
                $missingRights = array_diff(
                        $this->getAllVisibleRights(),
-                       User::getAllRights()
+                       MediaWikiServices::getInstance()->getPermissionManager()->getAllPermissions()
                );
 
                $this->assertEquals(
@@ -76,7 +78,7 @@ class AvailableRightsTest extends PHPUnit\Framework\TestCase {
         */
        private function checkMessagesExist( $prefix ) {
                // Getting all user rights, for core: User::$mCoreRights, for extensions: $wgAvailableRights
-               $allRights = User::getAllRights();
+               $allRights = MediaWikiServices::getInstance()->getPermissionManager()->getAllPermissions();
                $allMessageKeys = Language::getMessageKeysFor( 'en' );
 
                $messagesToCheck = [];