From: Brad Jorsch Date: Wed, 17 Jan 2018 15:44:29 +0000 (-0500) Subject: SpecialLog: Don't ignore offender when it's a nonexistent username X-Git-Tag: 1.31.0-rc.0~880^2 X-Git-Url: http://git.cyclocoop.org/%24dirpuce/puce%24spip_lang_rtl.gif?a=commitdiff_plain;h=467ee1e82f1526ba4671f52936fd279eb5cda4f6;p=lhc%2Fweb%2Fwiklou.git 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 --- 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