Hard deprecate User::setOption()
deprecated since 1.35 Bug: T277818 Change-Id: Ic251d624e5d6fa857aa92f9c5dd3df44714ac610
This commit is contained in:
parent
adee073758
commit
04dfdc3653
17 changed files with 85 additions and 27 deletions
|
|
@ -127,6 +127,7 @@ because of Phabricator reports.
|
|||
deprecated in favor of the ReadOnlyMode service.
|
||||
* PageProps::getInstance() has been deprecated. Use
|
||||
MediaWikiServices::getPageProps() instead.
|
||||
* User::setOption(), deprecated since 1.35, now emits deprecation warnings.
|
||||
* Skin::getSkinStylePath has been hard deprecated. Direct string path
|
||||
should be used instead.
|
||||
* SkinTemplate::getPersonalToolsList(), deprecated since 1.35, now emits
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
* @ingroup JobQueue
|
||||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
/**
|
||||
* Job that updates a user's preferences
|
||||
*
|
||||
|
|
@ -47,8 +49,10 @@ class UserOptionsUpdateJob extends Job implements GenericParameterJob {
|
|||
return true;
|
||||
}
|
||||
|
||||
$userOptionsManager = MediaWikiServices::getInstance()
|
||||
->getUserOptionsManager();
|
||||
foreach ( $this->params['options'] as $name => $value ) {
|
||||
$user->setOption( $name, $value );
|
||||
$userOptionsManager->setOption( $user, $name, $value );
|
||||
}
|
||||
|
||||
$user->saveSettings();
|
||||
|
|
|
|||
|
|
@ -2621,9 +2621,11 @@ class User implements Authority, UserIdentity, UserEmailContact {
|
|||
*
|
||||
* @param string $oname The option to set
|
||||
* @param mixed $val New value to set
|
||||
* @deprecated since 1.35 Use UserOptionsManager::setOption instead
|
||||
* @deprecated since 1.35, hard deprecated since 1.38
|
||||
* Use UserOptionsManager::setOption instead
|
||||
*/
|
||||
public function setOption( $oname, $val ) {
|
||||
wfDeprecated( __METHOD__, '1.35' );
|
||||
MediaWikiServices::getInstance()
|
||||
->getUserOptionsManager()
|
||||
->setOption( $this, $oname, $val );
|
||||
|
|
@ -2674,7 +2676,9 @@ class User implements Authority, UserIdentity, UserEmailContact {
|
|||
}
|
||||
|
||||
$token = MWCryptRand::generateHex( 40 );
|
||||
$this->setOption( $oname, $token );
|
||||
MediaWikiServices::getInstance()
|
||||
->getUserOptionsManager()
|
||||
->setOption( $this, $oname, $token );
|
||||
return $token;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1285,13 +1285,14 @@ class ParserTestRunner {
|
|||
$setup[] = $reset;
|
||||
$teardown[] = $reset;
|
||||
|
||||
$userOptionsManager = MediaWikiServices::getInstance()->getUserOptionsManager();
|
||||
// Make a user object with the same language
|
||||
$user = new User;
|
||||
$user->setOption( 'language', $langCode );
|
||||
$userOptionsManager->setOption( $user, 'language', $langCode );
|
||||
$setup['wgLang'] = $lang;
|
||||
|
||||
// We (re)set $wgThumbLimits to a single-element array above.
|
||||
$user->setOption( 'thumbsize', 0 );
|
||||
$userOptionsManager->setOption( $user, 'thumbsize', 0 );
|
||||
|
||||
$setup['wgUser'] = $user;
|
||||
|
||||
|
|
|
|||
|
|
@ -525,7 +525,11 @@ class LinkerTest extends MediaWikiLangTestCase {
|
|||
|
||||
$context = RequestContext::getMain();
|
||||
$user = $context->getUser();
|
||||
$user->setOption( 'showrollbackconfirmation', $rollbackEnabled );
|
||||
$this->getServiceContainer()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'showrollbackconfirmation',
|
||||
$rollbackEnabled
|
||||
);
|
||||
|
||||
$this->assertSame( 0, Title::newFromText( $title )->getArticleID() );
|
||||
$pageData = $this->insertPage( $title );
|
||||
|
|
|
|||
|
|
@ -1131,13 +1131,15 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
|
|||
|
||||
// Case where user does not have canonical parser options
|
||||
$user = $this->getMutableTestUser()->getUser();
|
||||
$user->setOption(
|
||||
$services = $this->getServiceContainer();
|
||||
$services->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'thumbsize',
|
||||
$user->getOption( 'thumbsize' ) + 1
|
||||
);
|
||||
$content = [ 'main' => new WikitextContent( 'rev ID ver #2: {{REVISIONID}}' ) ];
|
||||
$rev = $this->createRevision( $page, 'first', $content, $user );
|
||||
$pcache = MediaWikiServices::getInstance()->getParserCache();
|
||||
$pcache = $services->getParserCache();
|
||||
$pcache->deleteOptionsKey( $page );
|
||||
|
||||
$this->db->startAtomic( __METHOD__ ); // let deferred updates queue up
|
||||
|
|
|
|||
|
|
@ -1462,8 +1462,10 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
|
|||
'Create the page'
|
||||
);
|
||||
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$otherUser = $this->getNonLoggedInTestUser();
|
||||
$otherUser->setOption( 'watchlisttoken', '1234567890' );
|
||||
$userOptionsManager->setOption( $otherUser, 'watchlisttoken', '1234567890' );
|
||||
$otherUser->saveSettings();
|
||||
|
||||
$this->watchPages( $otherUser, [ $target ] );
|
||||
|
|
@ -1490,8 +1492,10 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
|
|||
}
|
||||
|
||||
public function testOwnerAndTokenParams_wrongToken() {
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$otherUser = $this->getNonLoggedInTestUser();
|
||||
$otherUser->setOption( 'watchlisttoken', '1234567890' );
|
||||
$userOptionsManager->setOption( $otherUser, 'watchlisttoken', '1234567890' );
|
||||
$otherUser->saveSettings();
|
||||
|
||||
$this->expectException( ApiUsageException::class );
|
||||
|
|
|
|||
|
|
@ -472,8 +472,11 @@ class ApiQueryWatchlistRawIntegrationTest extends ApiTestCase {
|
|||
}
|
||||
|
||||
public function testOwnerAndTokenParams() {
|
||||
$services = $this->getServiceContainer();
|
||||
$userOptionsManager = $services->getUserOptionsManager();
|
||||
|
||||
$otherUser = $this->getNotLoggedInTestUser();
|
||||
$otherUser->setOption( 'watchlisttoken', '1234567890' );
|
||||
$userOptionsManager->setOption( $otherUser, 'watchlisttoken', '1234567890' );
|
||||
$otherUser->saveSettings();
|
||||
|
||||
$store = $this->getWatchedItemStore();
|
||||
|
|
@ -482,7 +485,7 @@ class ApiQueryWatchlistRawIntegrationTest extends ApiTestCase {
|
|||
new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
|
||||
] );
|
||||
|
||||
MediaWikiServices::getInstance()->getMainWANObjectCache()->clearProcessCache();
|
||||
$services->getMainWANObjectCache()->clearProcessCache();
|
||||
$result = $this->doListWatchlistRawRequest( [
|
||||
'wrowner' => $otherUser->getName(),
|
||||
'wrtoken' => '1234567890',
|
||||
|
|
@ -504,8 +507,10 @@ class ApiQueryWatchlistRawIntegrationTest extends ApiTestCase {
|
|||
}
|
||||
|
||||
public function testOwnerAndTokenParams_wrongToken() {
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$otherUser = $this->getNotLoggedInTestUser();
|
||||
$otherUser->setOption( 'watchlisttoken', '1234567890' );
|
||||
$userOptionsManager->setOption( $otherUser, 'watchlisttoken', '1234567890' );
|
||||
$otherUser->saveSettings();
|
||||
|
||||
$this->expectException( ApiUsageException::class );
|
||||
|
|
|
|||
|
|
@ -15,16 +15,18 @@ class GenderCacheTest extends MediaWikiLangTestCase {
|
|||
// ensure the correct default gender
|
||||
$this->mergeMwGlobalArrayValue( 'wgDefaultUserOptions', [ 'gender' => 'unknown' ] );
|
||||
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$male = $this->getMutableTestUser()->getUser();
|
||||
$male->setOption( 'gender', 'male' );
|
||||
$userOptionsManager->setOption( $male, 'gender', 'male' );
|
||||
$male->saveSettings();
|
||||
|
||||
$female = $this->getMutableTestUser()->getUser();
|
||||
$female->setOption( 'gender', 'female' );
|
||||
$userOptionsManager->setOption( $female, 'gender', 'female' );
|
||||
$female->saveSettings();
|
||||
|
||||
$default = $this->getMutableTestUser()->getUser();
|
||||
$default->setOption( 'gender', null );
|
||||
$userOptionsManager->setOption( $default, 'gender', null );
|
||||
$default->saveSettings();
|
||||
|
||||
self::$nameMap = [
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ use MediaWiki\MediaWikiServices;
|
|||
class CoreParserFunctionsTest extends MediaWikiLangTestCase {
|
||||
|
||||
public function testGender() {
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$user = User::createNew( '*Female' );
|
||||
$user->setOption( 'gender', 'female' );
|
||||
$userOptionsManager->setOption( $user, 'gender', 'female' );
|
||||
$user->saveSettings();
|
||||
|
||||
$msg = ( new RawMessage( '{{GENDER:*Female|m|f|o}}' ) )->parse();
|
||||
|
|
|
|||
|
|
@ -143,7 +143,11 @@ class SkinTest extends MediaWikiIntegrationTestCase {
|
|||
*/
|
||||
public function getUser() {
|
||||
$user = TestUserRegistry::getImmutableTestUser( [] )->getUser();
|
||||
$user->setOption( 'skin-responsive', $this->options['userPreference'] );
|
||||
\MediaWiki\MediaWikiServices::getInstance()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'skin-responsive',
|
||||
$this->options['userPreference']
|
||||
);
|
||||
return $user;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -118,7 +118,11 @@ abstract class AbstractChangesListSpecialPageTestCase extends MediaWikiIntegrati
|
|||
|
||||
// Give users patrol permissions so we can test that.
|
||||
$user = $this->getTestSysop()->getUser();
|
||||
$user->setOption( 'rcenhancedfilters-disable', $rcfilters ? 0 : 1 );
|
||||
$this->getServiceContainer()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'rcenhancedfilters-disable',
|
||||
$rcfilters ? 0 : 1
|
||||
);
|
||||
$ctx = new RequestContext();
|
||||
$ctx->setUser( $user );
|
||||
|
||||
|
|
|
|||
|
|
@ -164,8 +164,9 @@ class SpecialSearchTest extends MediaWikiIntegrationTestCase {
|
|||
if ( $opt === null ) {
|
||||
return $u;
|
||||
}
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
foreach ( $opt as $name => $value ) {
|
||||
$u->setOption( $name, $value );
|
||||
$userOptionsManager->setOption( $u, $name, $value );
|
||||
}
|
||||
|
||||
return $u;
|
||||
|
|
|
|||
|
|
@ -114,8 +114,9 @@ class SpecialWatchlistTest extends SpecialPageTestBase {
|
|||
$fauxRequest = new FauxRequest( $inputParams, /* $wasPosted= */ false );
|
||||
$user = $this->getTestUser()->getUser();
|
||||
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
foreach ( $preferences as $key => $value ) {
|
||||
$user->setOption( $key, $value );
|
||||
$userOptionsManager->setOption( $user, $key, $value );
|
||||
}
|
||||
|
||||
$context->setRequest( $fauxRequest );
|
||||
|
|
|
|||
|
|
@ -445,6 +445,7 @@ class UserTest extends MediaWikiIntegrationTestCase {
|
|||
public function testOptions() {
|
||||
$this->hideDeprecated( 'User::getBoolOption' );
|
||||
$this->hideDeprecated( 'User::getIntOption' );
|
||||
$this->hideDeprecated( 'User::setOption' );
|
||||
$this->setMwGlobals( [
|
||||
'wgMaxArticleSize' => 2,
|
||||
] );
|
||||
|
|
@ -493,6 +494,7 @@ class UserTest extends MediaWikiIntegrationTestCase {
|
|||
*/
|
||||
public function testAnonOptions() {
|
||||
global $wgDefaultUserOptions;
|
||||
$this->hideDeprecated( 'User::setOption' );
|
||||
$this->user->setOption( 'userjs-someoption', 'test' );
|
||||
$this->assertSame( $wgDefaultUserOptions['rclimit'], $this->user->getOption( 'rclimit' ) );
|
||||
$this->assertSame( 'test', $this->user->getOption( 'userjs-someoption' ) );
|
||||
|
|
@ -2243,7 +2245,11 @@ class UserTest extends MediaWikiIntegrationTestCase {
|
|||
] );
|
||||
|
||||
$user = User::newFromName( 'UserWhoMayRequireHTTPS' );
|
||||
$user->setOption( 'prefershttps', $preference );
|
||||
$this->getServiceContainer()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'prefershttps',
|
||||
$preference
|
||||
);
|
||||
$user->saveSettings();
|
||||
|
||||
$user = User::newFromName( $user->getName() );
|
||||
|
|
@ -2267,7 +2273,11 @@ class UserTest extends MediaWikiIntegrationTestCase {
|
|||
] );
|
||||
|
||||
$user = User::newFromName( 'UserWhoMayRequireHTTP' );
|
||||
$user->setOption( 'prefershttps', true );
|
||||
$this->getServiceContainer()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'prefershttps',
|
||||
true
|
||||
);
|
||||
$user->saveSettings();
|
||||
|
||||
$user = User::newFromName( $user->getName() );
|
||||
|
|
@ -2287,7 +2297,11 @@ class UserTest extends MediaWikiIntegrationTestCase {
|
|||
] );
|
||||
|
||||
$user = User::newFromName( 'UserWhoMayRequireHTTP' );
|
||||
$user->setOption( 'prefershttps', false );
|
||||
$this->getServiceContainer()->getUserOptionsManager()->setOption(
|
||||
$user,
|
||||
'prefershttps',
|
||||
false
|
||||
);
|
||||
$user->saveSettings();
|
||||
|
||||
$user = User::newFromName( $user->getName() );
|
||||
|
|
|
|||
|
|
@ -106,11 +106,13 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
|
|||
$optionName = 'variant-tg';
|
||||
}
|
||||
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$user = new User;
|
||||
$user->load(); // from 'defaults'
|
||||
$user->mId = 1;
|
||||
$user->mDataLoaded = true;
|
||||
$user->setOption( $optionName, $optionVal );
|
||||
$userOptionsManager->setOption( $user, $optionName, $optionVal );
|
||||
|
||||
$this->setContextUser( $user );
|
||||
|
||||
|
|
@ -136,11 +138,14 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
|
|||
|
||||
$this->setContentLang( 'tg-latn' );
|
||||
$wgRequest->setVal( 'variant', 'tg' );
|
||||
|
||||
$userOptionsManager = $this->getServiceContainer()->getUserOptionsManager();
|
||||
|
||||
$user = User::newFromId( "admin" );
|
||||
$user->setId( 1 );
|
||||
$user->mFrom = 'defaults';
|
||||
// The user's data is ignored because the variant is set in the URL.
|
||||
$user->setOption( 'variant', 'tg-latn' );
|
||||
$userOptionsManager->setOption( $user, 'variant', 'tg-latn' );
|
||||
|
||||
$this->setContextUser( $user );
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class HTMLCheckMatrixTest extends MediaWikiUnitTestCase {
|
|||
* This form object actually has no visibility into what happens later on, but essentially
|
||||
* if the data submitted by the user passes validate the following is run:
|
||||
* foreach ( $field->filterDataForSubmit( $data ) as $k => $v ) {
|
||||
* $user->setOption( $k, $v );
|
||||
* $userOptionsManager->setOption( $user, $k, $v );
|
||||
* }
|
||||
*/
|
||||
public function testValuesForcedOnRemainOn() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue