X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fspecials%2Fpagers%2FNewPagesPager.php;h=1db32e6142c23f2a11238c107e78ba9febeecc2d;hb=246edb94a2ba8b6c94d52cb60c7c884d28d59190;hp=8131671a536da844634be38e4cec40e88b34b167;hpb=a6a6c19c794619c24881d2d984dc18ceb3b6419b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/pagers/NewPagesPager.php b/includes/specials/pagers/NewPagesPager.php index 8131671a53..1db32e6142 100644 --- a/includes/specials/pagers/NewPagesPager.php +++ b/includes/specials/pagers/NewPagesPager.php @@ -68,9 +68,7 @@ class NewPagesPager extends ReverseChronologicalPager { $conds[] = ActorMigration::newMigration()->getWhere( $this->mDb, 'rc_user', User::newFromName( $user->getText(), false ), false )['conds']; - } elseif ( User::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'] ); } @@ -123,6 +121,13 @@ class NewPagesPager extends ReverseChronologicalPager { 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' ); @@ -137,15 +142,18 @@ class NewPagesPager extends ReverseChronologicalPager { $eq_op = $invert ? '!=' : '='; $bool_op = $invert ? 'AND' : 'OR'; + $selectedNS = $this->mDb->addQuotes( $namespace ); if ( !$associated ) { - return [ "rc_namespace $eq_op " . $this->mDb->addQuotes( $namespace ) ]; + return [ "rc_namespace $eq_op $selectedNS" ]; } - $associatedNS = MediaWikiServices::getInstance()->getNamespaceInfo()->getAssociated( $namespace ); + $associatedNS = $this->mDb->addQuotes( + MediaWikiServices::getInstance()->getNamespaceInfo()->getAssociated( $namespace ) + ); return [ - "rc_namespace $eq_op " . $this->mDb->addQuotes( $namespace ) . + "rc_namespace $eq_op $selectedNS " . $bool_op . - " rc_namespace $eq_op " . $this->mDb->addQuotes( $associatedNS ) + " rc_namespace $eq_op $associatedNS" ]; }