From 467ee1e82f1526ba4671f52936fd279eb5cda4f6 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Wed, 17 Jan 2018 10:44:29 -0500 Subject: [PATCH] SpecialLog: Don't ignore offender when it's a nonexistent username When viewing the suppression log, the 'offender' field is ignored if it specifies a username that happens to not exist locally. It would make more sense for it to filter by that name and return an empty list. Ideally such searches would have the possibility of succeeding, since imported log entries can be attributed to a nonexistent user, but the necessary data isn't currently being stored. The actor table patch (I8d825eb0) will start storing that data once migration begins, although a maintenance script run would be needed to populate it for old log entries. Change-Id: I73ac78f7623178ab878135b910a22013723885d3 --- includes/specials/SpecialLog.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index 511cfbf5d0..de3fd19288 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -79,10 +79,12 @@ class SpecialLog extends SpecialPage { $qc = []; if ( $opts->getValue( 'type' ) == 'suppress' ) { $offender = User::newFromName( $opts->getValue( 'offender' ), false ); - if ( $offender && $offender->getId() > 0 ) { - $qc = [ 'ls_field' => 'target_author_id', 'ls_value' => $offender->getId() ]; - } elseif ( $offender && IP::isIPAddress( $offender->getName() ) ) { - $qc = [ 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() ]; + if ( $offender ) { + if ( $offender->getId() > 0 ) { + $qc = [ 'ls_field' => 'target_author_id', 'ls_value' => $offender->getId() ]; + } else { + $qc = [ 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() ]; + } } } else { // Allow extensions to add relations to their search types -- 2.20.1