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~24157^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/modifier.php?a=commitdiff_plain;h=8441c854aaadca54bc9a5c8d728ff80dcf3745cc;p=lhc%2Fweb%2Fwiklou.git (bug 32827) "[Regression] Block log for IP ranges not shown on Special:Block" (imported from SVN) Change-Id: I16485d84553256ff6ad4932de7d17540e90af779 --- 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?