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
$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