Follow up 9ef34a2f1d0: fix NewPagesPager "hide registered users" option
authorDannyS712 <DannyS712.enwiki@gmail.com>
Tue, 17 Dec 2019 06:08:29 +0000 (06:08 +0000)
committerDannyS712 <DannyS712.enwiki@gmail.com>
Mon, 23 Dec 2019 19:39:24 +0000 (19:39 +0000)
Bug: T238483
Change-Id: I6afe6bf28da8841815191b9c0b1833e0cfd28b6c
(cherry picked from commit f599ff347d0772e163edfda2a35d65e222380a12)

includes/specials/pagers/NewPagesPager.php

index 95f67d5..1db32e6 100644 (file)
@@ -68,11 +68,7 @@ class NewPagesPager extends ReverseChronologicalPager {
                        $conds[] = ActorMigration::newMigration()->getWhere(
                                $this->mDb, 'rc_user', User::newFromName( $user->getText(), false ), false
                        )['conds'];
                        $conds[] = ActorMigration::newMigration()->getWhere(
                                $this->mDb, 'rc_user', User::newFromName( $user->getText(), false ), false
                        )['conds'];
-               } elseif ( MediaWikiServices::getInstance()
-                                       ->getPermissionManager()
-                                       ->groupHasPermission( '*', 'createpage' ) &&
-                       $this->opts->getValue( 'hideliu' )
-               ) {
+               } elseif ( $this->canAnonymousUsersCreatePages() && $this->opts->getValue( 'hideliu' ) ) {
                        # If anons cannot make new pages, don't "exclude logged in users"!
                        $conds[] = ActorMigration::newMigration()->isAnon( $rcQuery['fields']['rc_user'] );
                }
                        # If anons cannot make new pages, don't "exclude logged in users"!
                        $conds[] = ActorMigration::newMigration()->isAnon( $rcQuery['fields']['rc_user'] );
                }
@@ -125,6 +121,13 @@ class NewPagesPager extends ReverseChronologicalPager {
                return $info;
        }
 
                return $info;
        }
 
+       private function canAnonymousUsersCreatePages() {
+               $pm = MediaWikiServices::getInstance()->getPermissionManager();
+               return ( $pm->groupHasPermission( '*', 'createpage' ) ||
+                       $pm->groupHasPermission( '*', 'createtalk' )
+               );
+       }
+
        // Based on ContribsPager.php
        function getNamespaceCond() {
                $namespace = $this->opts->getValue( 'namespace' );
        // Based on ContribsPager.php
        function getNamespaceCond() {
                $namespace = $this->opts->getValue( 'namespace' );