From 024c31d490b0ff0371eabcfa6111f34c525408c8 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 14 Mar 2012 01:42:14 +0000 Subject: [PATCH] (bug 32827) "[Regression] Block log for IP ranges not shown on Special:Block" --- includes/specials/SpecialBlock.php | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/includes/specials/SpecialBlock.php b/includes/specials/SpecialBlock.php index 5b5b356fd3..a58e62ea27 100644 --- a/includes/specials/SpecialBlock.php +++ b/includes/specials/SpecialBlock.php @@ -381,19 +381,19 @@ class SpecialBlock extends FormSpecialPage { $this->getLanguage()->pipeList( $links ) ); - if( $this->target instanceof User ){ + $userTitle = self::getTargetUserTitle( $this->target ); + if( $userTitle ){ # Get relevant extracts from the block and suppression logs, if possible - $userpage = $this->target->getUserPage(); $out = ''; LogEventsList::showLogExtract( $out, 'block', - $userpage, + $userTitle, '', array( 'lim' => 10, - 'msgKey' => array( 'blocklog-showlog', $userpage->getText() ), + 'msgKey' => array( 'blocklog-showlog', $userTitle->getText() ), 'showIfEmpty' => false ) ); @@ -404,12 +404,12 @@ class SpecialBlock extends FormSpecialPage { LogEventsList::showLogExtract( $out, 'suppress', - $userpage, + $userTitle, '', array( 'lim' => 10, 'conds' => array( 'log_action' => array( 'block', 'reblock', 'unblock' ) ), - 'msgKey' => array( 'blocklog-showsuppresslog', $userpage->getText() ), + 'msgKey' => array( 'blocklog-showsuppresslog', $userTitle->getText() ), 'showIfEmpty' => false ) ); @@ -421,6 +421,21 @@ class SpecialBlock extends FormSpecialPage { return $text; } + /** + * Get a user page target for things like logs. + * This handles account and IP range targets. + * @param $target User|string + * @return Title|null + */ + protected static function getTargetUserTitle( $target ) { + if( $target instanceof User ) { + return $target->getUserPage(); + } elseif ( IP::isIPAddress( $target ) ) { + return Title::makeTitleSafe( NS_USER, $target ); + } + return null; + } + /** * Determine the target of the block, and the type of target * TODO: should be in Block.php? -- 2.20.1