X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiFeedContributions.php;h=fabe4a2e7c410204b0a4367eb43542ba7259640b;hb=5455d4c43122d66e1bc1a62d700684e14f13e557;hp=08be8e029c9f9c6d27d4dbe26350a69ba40b31ac;hpb=bf078d811470335d2426a65651e70a202c81fded;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiFeedContributions.php b/includes/api/ApiFeedContributions.php index 08be8e029c..fabe4a2e7c 100644 --- a/includes/api/ApiFeedContributions.php +++ b/includes/api/ApiFeedContributions.php @@ -34,6 +34,9 @@ class ApiFeedContributions extends ApiBase { /** @var RevisionStore */ private $revisionStore; + /** @var TitleParser */ + private $titleParser; + /** * This module uses a custom feed wrapper printer. * @@ -45,6 +48,7 @@ class ApiFeedContributions extends ApiBase { public function execute() { $this->revisionStore = MediaWikiServices::getInstance()->getRevisionStore(); + $this->titleParser = MediaWikiServices::getInstance()->getTitleParser(); $params = $this->extractRequestParams(); @@ -67,9 +71,16 @@ class ApiFeedContributions extends ApiBase { ' [' . $config->get( 'LanguageCode' ) . ']'; $feedUrl = SpecialPage::getTitleFor( 'Contributions', $params['user'] )->getFullURL(); - $target = $params['user'] == 'newbies' - ? 'newbies' - : Title::makeTitleSafe( NS_USER, $params['user'] )->getText(); + try { + $target = $this->titleParser + ->parseTitle( $params['user'], NS_USER ) + ->getText(); + } catch ( MalformedTitleException $e ) { + $this->dieWithError( + [ 'apierror-baduser', 'user', wfEscapeWikiText( $params['user'] ) ], + 'baduser_' . $this->encodeParamName( 'user' ) + ); + } $feed = new $feedClasses[$params['feedformat']] ( $feedTitle,