From bab7bdb64048d2b51a65816bc347a83bff774d38 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Fri, 13 Jul 2012 15:54:09 +0200 Subject: [PATCH] ignore all local bot groups in newbie mode on Special:Contribs Change-Id: Ic9a6822e8f206a132c0884aba7f0f6191d22dade --- includes/specials/SpecialContributions.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/includes/specials/SpecialContributions.php b/includes/specials/SpecialContributions.php index e8223e8e85..3690191ab0 100644 --- a/includes/specials/SpecialContributions.php +++ b/includes/specials/SpecialContributions.php @@ -704,13 +704,22 @@ class ContribsPager extends ReverseChronologicalPager { $join_conds = array(); $tables = array( 'revision', 'page', 'user' ); if ( $this->contribs == 'newbie' ) { - $tables[] = 'user_groups'; $max = $this->mDb->selectField( 'user', 'max(user_id)', false, __METHOD__ ); $condition[] = 'rev_user >' . (int)( $max - $max / 100 ); - $condition[] = 'ug_group IS NULL'; $index = 'user_timestamp'; - # @todo FIXME: Other groups may have 'bot' rights - $join_conds['user_groups'] = array( 'LEFT JOIN', "ug_user = rev_user AND ug_group = 'bot'" ); + # ignore local groups with the bot right + # @todo FIXME: Global groups may have 'bot' rights + $groupsWithBotPermission = User::getGroupsWithPermission( 'bot' ); + if( count( $groupsWithBotPermission ) ) { + $tables[] = 'user_groups'; + $condition[] = 'ug_group IS NULL'; + $join_conds['user_groups'] = array( + 'LEFT JOIN', array( + 'ug_user = rev_user', + 'ug_group' => $groupsWithBotPermission + ) + ); + } } else { $uid = User::idFromName( $this->target ); if ( $uid ) { -- 2.20.1