From e1156f95d932624be45fa9cc2dd9783d8d2d91c9 Mon Sep 17 00:00:00 2001 From: DannyS712 Date: Thu, 26 Mar 2020 02:54:11 +0000 Subject: [PATCH] Hard deprecate Article::getUser and WikiPage::getUser fallback WikiPage::getUser requires a user if the audience is FOR_THIS_USER Bug: T248291 Change-Id: I07f349420595e68e94c2aec5c84b808163ee3b4f --- RELEASE-NOTES-1.35 | 3 +++ includes/page/Article.php | 2 ++ includes/page/WikiPage.php | 10 +++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES-1.35 b/RELEASE-NOTES-1.35 index bc0c4a134ca..c0d40065f91 100644 --- a/RELEASE-NOTES-1.35 +++ b/RELEASE-NOTES-1.35 @@ -603,6 +603,8 @@ because of Phabricator reports. is set to something other than the default of 'public') - WikiPage::getCreator (only when the 'audience' parameter is set to Revision::FOR_THIS_USER) + - WikiPage::getUser (only when the 'audience' parameter is set to + Revision::FOR_THIS_USER) - WikiPage::getUserText (only when the 'audience' parameter is set to Revision::FOR_THIS_USER) - LogPage::addEntry @@ -616,6 +618,7 @@ because of Phabricator reports. WikiPage::doDeleteArticleReal. * Article::getComment is deprecated. Instead, use WikiPage::getComment. * Article::getCreator is deprecated. Instead, use WikiPage::getCreator. +* Article::getUser is deprecated. Instead, use WikiPage::getUser. * Article::getUserText is deprecated. Instead, use WikiPage::getUserText. * LocalFileDeleteBatch was migrated to a new constructor signature with the user as the second parameter. Support for the old signature is hard diff --git a/includes/page/Article.php b/includes/page/Article.php index 55d6584a089..5e9e33b6aef 100644 --- a/includes/page/Article.php +++ b/includes/page/Article.php @@ -2640,12 +2640,14 @@ class Article implements Page { /** * Call to WikiPage function for backwards compatibility. + * @deprecated since 1.35 * @see WikiPage::getUser * @param int $audience * @param User|null $user * @return int */ public function getUser( $audience = RevisionRecord::FOR_PUBLIC, User $user = null ) { + wfDeprecated( __METHOD__, '1.35' ); return $this->mPage->getUser( $audience, $user ); } diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index a6057b8d43f..d0e0d3cc1aa 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -818,12 +818,20 @@ class WikiPage implements Page, IDBAccessObject { * Revision::FOR_THIS_USER to be displayed to the given user * Revision::RAW get the text regardless of permissions * @param User|null $user User object to check for, only if FOR_THIS_USER is passed - * to the $audience parameter + * to the $audience parameter (not passing for FOR_THIS_USER is deprecated since 1.35) * @return int User ID for the user that made the last article revision */ public function getUser( $audience = RevisionRecord::FOR_PUBLIC, User $user = null ) { $this->loadLastEdit(); if ( $this->mLastRevision ) { + if ( $audience === RevisionRecord::FOR_THIS_USER && $user === null ) { + wfDeprecated( + __METHOD__ . ' using FOR_THIS_USER without a user', + '1.35' + ); + global $wgUser; + $user = $wgUser; + } return $this->mLastRevision->getUser( $audience, $user ); } else { return -1;