From 0a7ef4edce7b0d70f7f75d54620ecb2bc390ebb3 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Sat, 19 Nov 2011 21:22:30 +0000 Subject: [PATCH] (bug 1697) Special:Log make Title an User object when the log type expect it --- RELEASE-NOTES-1.19 | 1 + includes/specials/SpecialLog.php | 25 +++++++++++++++++++++++++ languages/messages/MessagesEn.php | 4 ++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19 index 97581b998c..8697f30698 100644 --- a/RELEASE-NOTES-1.19 +++ b/RELEASE-NOTES-1.19 @@ -149,6 +149,7 @@ production. * (bug 32086) Special:PermanentLink now show an error message when no subpage was specified. * (bug 30368) Special:Newpages now shows the new page name for moved pages +* (bug 1697) The way to search blocked usernames in block log should be clearer === API changes in 1.19 === * (bug 19838) siprop=interwikimap can now use the interwiki cache. diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index 416092d07a..d0c42df5b4 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -30,6 +30,17 @@ */ class SpecialLog extends SpecialPage { + /** + * List log type for which the target is a user + * Thus if the given target is in NS_MAIN we can alter it to be an NS_USER + * Title user instead. + */ + private $typeOnUser = array( + 'block', + 'newusers', + 'right', + ); + public function __construct() { parent::__construct( 'Log' ); } @@ -85,6 +96,20 @@ class SpecialLog extends SpecialPage { } } + # Some log types are only for a 'User:' title but we might have been given + # only the username instead of the full title 'User:username'. This part try + # to lookup for a user by that name and eventually fix user input. See bug 1697. + if( in_array( $opts->getValue( 'type' ), $this->typeOnUser ) ) { + # ok we have a type of log which expect a user title. + $target = Title::newFromText( $opts->getValue( 'page' ) ); + if( $target->getNamespace() === NS_MAIN ) { + # User forgot to add 'User:', we are adding it for him + $opts->setValue( 'page', + Title::makeTitleSafe( NS_USER, $opts->getValue( 'page' ) ) + ); + } + } + $this->show( $opts, $qc ); } diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 92d80af93b..d4bd333df6 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -2573,8 +2573,8 @@ Please note that other web sites may link to a file with a direct URL, and so ma 'pubmedurl' => '//www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract', # do not translate or duplicate this message to other languages # Special:Log -'specialloguserlabel' => 'User:', -'speciallogtitlelabel' => 'Title:', +'specialloguserlabel' => 'Performer:', +'speciallogtitlelabel' => 'Target (title or user):', 'log' => 'Logs', 'all-logs-page' => 'All public logs', 'alllogstext' => 'Combined display of all available logs of {{SITENAME}}. -- 2.20.1