From 0d9e1b134a51c3c3d508d8d2ac79cbdcef3aae96 Mon Sep 17 00:00:00 2001 From: Alexander Vorwerk Date: Thu, 12 Aug 2021 00:25:32 +0200 Subject: [PATCH] Avoid using User::setOption() User::setOption() is deprecated and should be replaced with UserOptionsManager::setOption() Bug: T277818 Change-Id: I5ac58c4be5046d4457de24b63b062aa238e972b6 --- extension.json | 7 ++++++- includes/api/ApiULSSetLanguage.php | 21 ++++++++++++++++++++- maintenance/ULSCompactLinksDisablePref.php | 6 ++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/extension.json b/extension.json index 7a25ae44..37d3e0c7 100644 --- a/extension.json +++ b/extension.json @@ -33,7 +33,12 @@ "APIModules": { "languagesearch": "ApiLanguageSearch", "ulslocalization": "ApiULSLocalization", - "ulssetlang": "ApiULSSetLanguage" + "ulssetlang": { + "class": "ApiULSSetLanguage", + "services": [ + "UserOptionsManager" + ] + } }, "MessagesDirs": { "UniversalLanguageSelector": [ diff --git a/includes/api/ApiULSSetLanguage.php b/includes/api/ApiULSSetLanguage.php index 02de0207..e1f6fdb3 100644 --- a/includes/api/ApiULSSetLanguage.php +++ b/includes/api/ApiULSSetLanguage.php @@ -18,10 +18,29 @@ * @license MIT */ +use MediaWiki\User\UserOptionsManager; + /** * @ingroup API */ class ApiULSSetLanguage extends ApiBase { + /** @var UserOptionsManager */ + private $userOptionsManager; + + /** + * @param ApiMain $main + * @param string $action + * @param UserOptionsManager $userOptionsManager + */ + public function __construct( + ApiMain $main, + $action, + UserOptionsManager $userOptionsManager + ) { + parent::__construct( $main, $action ); + $this->userOptionsManager = $userOptionsManager; + } + public function execute() { $request = $this->getRequest(); if ( !$request->wasPosted() ) { @@ -53,7 +72,7 @@ class ApiULSSetLanguage extends ApiBase { } $updateUser = $user->getInstanceForUpdate(); - $updateUser->setOption( 'language', $languageCode ); + $this->userOptionsManager->setOption( $updateUser, 'language', $languageCode ); // Sync the DB on post-send DeferredUpdates::addCallableUpdate( static function () use ( $updateUser ) { $updateUser->saveSettings(); diff --git a/maintenance/ULSCompactLinksDisablePref.php b/maintenance/ULSCompactLinksDisablePref.php index ef569f26..f31733b4 100644 --- a/maintenance/ULSCompactLinksDisablePref.php +++ b/maintenance/ULSCompactLinksDisablePref.php @@ -34,7 +34,9 @@ class ULSCompactLinksDisablePref extends Maintenance { public function execute() { $dbr = wfGetDB( DB_REPLICA, 'vslow' ); - $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); + $services = MediaWikiServices::getInstance(); + $lbFactory = $services->getDBLoadBalancerFactory(); + $userOptionsManager = $services->getUserOptionsManager(); $really = $this->hasOption( 'really' ); @@ -102,7 +104,7 @@ class ULSCompactLinksDisablePref extends Maintenance { $user->load( User::READ_LATEST ); if ( $really ) { - $user->setOption( 'compact-language-links', 0 ); + $userOptionsManager->setOption( $user, 'compact-language-links', 0 ); $user->saveSettings(); }