From: Aaron Schulz Date: Wed, 14 Mar 2012 01:42:14 +0000 (+0000) Subject: (bug 32827) "[Regression] Block log for IP ranges not shown on Special:Block" X-Git-Tag: 1.31.0-rc.0~24262 X-Git-Url: http://git.cyclocoop.org/data/%24oldEdit?a=commitdiff_plain;h=024c31d490b0ff0371eabcfa6111f34c525408c8;p=lhc%2Fweb%2Fwiklou.git (bug 32827) "[Regression] Block log for IP ranges not shown on Special:Block" --- 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?