diff options
author | vladshapik <vlad.shapik@speedandfunction.com> | 2021-04-12 17:45:26 +0300 |
---|---|---|
committer | Vlad.shapik <vlad.shapik@speedandfunction.com> | 2021-04-26 16:10:24 +0000 |
commit | 9cc797695baae499d477e3d87f644415ec276893 (patch) | |
tree | 42fc65fb029904a8db555c278dc230e5c0741b02 /includes/api | |
parent | b1f51795bb19cde6128c33a9db45cc2cefb9d29e (diff) | |
download | mediawikicore-9cc797695baae499d477e3d87f644415ec276893.tar.gz mediawikicore-9cc797695baae499d477e3d87f644415ec276893.zip |
Hard deprecate User ::isIP, ::getOptions
Bug: T275602
Change-Id: Id4be13751ca0a900e51214c1855a4624077a5a62
Diffstat (limited to 'includes/api')
-rw-r--r-- | includes/api/ApiMain.php | 7 | ||||
-rw-r--r-- | includes/api/ApiOptions.php | 24 | ||||
-rw-r--r-- | includes/api/ApiQuery.php | 5 | ||||
-rw-r--r-- | includes/api/ApiQueryBlocks.php | 11 | ||||
-rw-r--r-- | includes/api/ApiQueryUserContribs.php | 11 | ||||
-rw-r--r-- | includes/api/ApiQueryUserInfo.php | 20 |
6 files changed, 69 insertions, 9 deletions
diff --git a/includes/api/ApiMain.php b/includes/api/ApiMain.php index d77259e270c6..4b7cf27dd960 100644 --- a/includes/api/ApiMain.php +++ b/includes/api/ApiMain.php @@ -173,7 +173,12 @@ class ApiMain extends ApiBase { ] ], 'userrights' => ApiUserrights::class, - 'options' => ApiOptions::class, + 'options' => [ + 'class' => ApiOptions::class, + 'services' => [ + 'UserOptionsManager', + ], + ], 'imagerotate' => ApiImageRotate::class, 'revisiondelete' => ApiRevisionDelete::class, 'managetags' => ApiManageTags::class, diff --git a/includes/api/ApiOptions.php b/includes/api/ApiOptions.php index 900945159a5a..ae55bad578ce 100644 --- a/includes/api/ApiOptions.php +++ b/includes/api/ApiOptions.php @@ -22,6 +22,7 @@ use MediaWiki\Logger\LoggerFactory; use MediaWiki\MediaWikiServices; +use MediaWiki\User\UserOptionsManager; /** * API module that facilitates the changing of user's preferences. @@ -33,6 +34,27 @@ class ApiOptions extends ApiBase { /** @var User User account to modify */ private $userForUpdates; + /** @var UserOptionsManager */ + private $userOptionsManager; + + /** + * @param ApiMain $main + * @param string $action + * @param UserOptionsManager|null $userOptionsManager + */ + public function __construct( + ApiMain $main, + $action, + UserOptionsManager $userOptionsManager = null + ) { + parent::__construct( $main, $action ); + /** + * This class is extended by GlobalPreferences extension. + * So it falls back to the global state. + */ + $this->userOptionsManager = $userOptionsManager ?? MediaWikiServices::getInstance()->getUserOptionsManager(); + } + /** * Changes preferences of the current user. */ @@ -99,7 +121,7 @@ class ApiOptions extends ApiBase { $htmlForm = new HTMLForm( [], $this ); } $field = HTMLForm::loadInputFromParameters( $key, $prefs[$key], $htmlForm ); - $validation = $field->validate( $value, $user->getOptions() ); + $validation = $field->validate( $value, $this->userOptionsManager->getOptions( $user ) ); } break; case 'registered-multiselect': diff --git a/includes/api/ApiQuery.php b/includes/api/ApiQuery.php index dad4cc6b66d3..cd4e3fe40294 100644 --- a/includes/api/ApiQuery.php +++ b/includes/api/ApiQuery.php @@ -92,6 +92,7 @@ class ApiQuery extends ApiBase { 'services' => [ 'BlockRestrictionStore', 'CommentStore', + 'UserNameUtils', ], ], 'categorymembers' => ApiQueryCategoryMembers::class, @@ -142,6 +143,7 @@ class ApiQuery extends ApiBase { 'services' => [ 'CommentStore', 'UserIdentityLookup', + 'UserNameUtils', ], ], 'users' => ApiQueryUsers::class, @@ -171,7 +173,8 @@ class ApiQuery extends ApiBase { 'services' => [ 'TalkPageNotificationManager', 'WatchedItemStore', - 'UserEditTracker' + 'UserEditTracker', + 'UserOptionsLookup', ] ], 'filerepoinfo' => ApiQueryFileRepoInfo::class, diff --git a/includes/api/ApiQueryBlocks.php b/includes/api/ApiQueryBlocks.php index e56079160412..e4dc81407571 100644 --- a/includes/api/ApiQueryBlocks.php +++ b/includes/api/ApiQueryBlocks.php @@ -22,6 +22,7 @@ use MediaWiki\Block\BlockRestrictionStore; use MediaWiki\ParamValidator\TypeDef\UserDef; +use MediaWiki\User\UserNameUtils; use Wikimedia\IPUtils; use Wikimedia\Rdbms\IResultWrapper; @@ -38,21 +39,27 @@ class ApiQueryBlocks extends ApiQueryBase { /** @var CommentStore */ private $commentStore; + /** @var UserNameUtils */ + private $userNameUtils; + /** * @param ApiQuery $query * @param string $moduleName * @param BlockRestrictionStore $blockRestrictionStore * @param CommentStore $commentStore + * @param UserNameUtils $userNameUtils */ public function __construct( ApiQuery $query, $moduleName, BlockRestrictionStore $blockRestrictionStore, - CommentStore $commentStore + CommentStore $commentStore, + UserNameUtils $userNameUtils ) { parent::__construct( $query, $moduleName, 'bk' ); $this->blockRestrictionStore = $blockRestrictionStore; $this->commentStore = $commentStore; + $this->userNameUtils = $userNameUtils; } public function execute() { @@ -283,7 +290,7 @@ class ApiQueryBlocks extends ApiQueryBase { "baduser_{$encParamName}" ); } - $name = User::isIP( $user ) + $name = $this->userNameUtils->isIP( $user ) || IPUtils::isIPv6( $user ) ? $user : User::getCanonicalName( $user, 'valid' ); if ( $name === false ) { diff --git a/includes/api/ApiQueryUserContribs.php b/includes/api/ApiQueryUserContribs.php index 07a3ae624d0f..faff0f8ae8dc 100644 --- a/includes/api/ApiQueryUserContribs.php +++ b/includes/api/ApiQueryUserContribs.php @@ -26,6 +26,7 @@ use MediaWiki\Revision\RevisionRecord; use MediaWiki\Storage\NameTableAccessException; use MediaWiki\User\UserIdentity; use MediaWiki\User\UserIdentityLookup; +use MediaWiki\User\UserNameUtils; use Wikimedia\Rdbms\SelectQueryBuilder; /** @@ -41,21 +42,27 @@ class ApiQueryUserContribs extends ApiQueryBase { /** @var UserIdentityLookup */ private $userIdentityLookup; + /** @var UserNameUtils */ + private $userNameUtils; + /** * @param ApiQuery $query * @param string $moduleName * @param CommentStore $commentStore * @param UserIdentityLookup $userIdentityLookup + * @param UserNameUtils $userNameUtils */ public function __construct( ApiQuery $query, $moduleName, CommentStore $commentStore, - UserIdentityLookup $userIdentityLookup + UserIdentityLookup $userIdentityLookup, + UserNameUtils $userNameUtils ) { parent::__construct( $query, $moduleName, 'uc' ); $this->commentStore = $commentStore; $this->userIdentityLookup = $userIdentityLookup; + $this->userNameUtils = $userNameUtils; } private $params, $multiUserMode, $orderBy, $parentLens; @@ -187,7 +194,7 @@ class ApiQueryUserContribs extends ApiQueryBase { ); } - if ( User::isIP( $u ) || ExternalUserNames::isExternal( $u ) ) { + if ( $this->userNameUtils->isIP( $u ) || ExternalUserNames::isExternal( $u ) ) { $names[$u] = null; } else { $name = User::getCanonicalName( $u, 'valid' ); diff --git a/includes/api/ApiQueryUserInfo.php b/includes/api/ApiQueryUserInfo.php index 476d7f046345..5da4e49e8402 100644 --- a/includes/api/ApiQueryUserInfo.php +++ b/includes/api/ApiQueryUserInfo.php @@ -22,6 +22,7 @@ use MediaWiki\User\TalkPageNotificationManager; use MediaWiki\User\UserEditTracker; +use MediaWiki\User\UserOptionsLookup; /** * Query module to get information about the currently logged-in user @@ -55,17 +56,32 @@ class ApiQueryUserInfo extends ApiQueryBase { */ private $userEditTracker; + /** + * @var UserOptionsLookup + */ + private $userOptionsLookup; + + /** + * @param ApiQuery $query + * @param string $moduleName + * @param TalkPageNotificationManager $talkPageNotificationManager + * @param WatchedItemStore $watchedItemStore + * @param UserEditTracker $userEditTracker + * @param UserOptionsLookup $userOptionsLookup + */ public function __construct( ApiQuery $query, $moduleName, TalkPageNotificationManager $talkPageNotificationManager, WatchedItemStore $watchedItemStore, - UserEditTracker $userEditTracker + UserEditTracker $userEditTracker, + UserOptionsLookup $userOptionsLookup ) { parent::__construct( $query, $moduleName, 'ui' ); $this->talkPageNotificationManager = $talkPageNotificationManager; $this->watchedItemStore = $watchedItemStore; $this->userEditTracker = $userEditTracker; + $this->userOptionsLookup = $userOptionsLookup; } public function execute() { @@ -180,7 +196,7 @@ class ApiQueryUserInfo extends ApiQueryBase { } if ( isset( $this->prop['options'] ) ) { - $vals['options'] = $user->getOptions(); + $vals['options'] = $this->userOptionsLookup->getOptions( $user ); $vals['options'][ApiResult::META_BC_BOOLS] = array_keys( $vals['options'] ); } |