Merge "DatabaseBlockStore: fetch correct ActorNormalization"

This commit is contained in:
jenkins-bot 2021-05-10 09:13:12 +00:00 committed by Gerrit Code Review
commit b6fea99341
3 changed files with 16 additions and 11 deletions

View file

@ -372,7 +372,7 @@ return [
$services->getMainConfig()
),
LoggerFactory::getInstance( 'DatabaseBlockStore' ),
$services->getActorNormalization(),
$services->getActorStoreFactory(),
$services->getBlockRestrictionStore(),
$services->getCommentStore(),
$services->getHookContainer(),

View file

@ -28,7 +28,7 @@ use DeferredUpdates;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\HookContainer\HookRunner;
use MediaWiki\User\ActorNormalization;
use MediaWiki\User\ActorStoreFactory;
use MediaWiki\User\UserIdentity;
use MWException;
use Psr\Log\LoggerInterface;
@ -58,8 +58,8 @@ class DatabaseBlockStore {
/** @var LoggerInterface */
private $logger;
/** @var ActorNormalization */
private $actorNormalization;
/** @var ActorStoreFactory */
private $actorStoreFactory;
/** @var BlockRestrictionStore */
private $blockRestrictionStore;
@ -79,7 +79,7 @@ class DatabaseBlockStore {
/**
* @param ServiceOptions $options
* @param LoggerInterface $logger
* @param ActorNormalization $actorNormalization
* @param ActorStoreFactory $actorStoreFactory
* @param BlockRestrictionStore $blockRestrictionStore
* @param CommentStore $commentStore
* @param HookContainer $hookContainer
@ -89,7 +89,7 @@ class DatabaseBlockStore {
public function __construct(
ServiceOptions $options,
LoggerInterface $logger,
ActorNormalization $actorNormalization,
ActorStoreFactory $actorStoreFactory,
BlockRestrictionStore $blockRestrictionStore,
CommentStore $commentStore,
HookContainer $hookContainer,
@ -100,7 +100,7 @@ class DatabaseBlockStore {
$this->options = $options;
$this->logger = $logger;
$this->actorNormalization = $actorNormalization;
$this->actorStoreFactory = $actorStoreFactory;
$this->blockRestrictionStore = $blockRestrictionStore;
$this->commentStore = $commentStore;
$this->hookRunner = new HookRunner( $hookContainer );
@ -354,7 +354,10 @@ class DatabaseBlockStore {
if ( !$block->getBlocker() ) {
throw new \RuntimeException( __METHOD__ . ': this block does not have a blocker' );
}
$blockerActor = $this->actorNormalization->acquireActorId( $block->getBlocker(), $dbw );
// DatabaseBlockStore supports inserting cross-wiki blocks by passing non-local IDatabase and blocker.
$blockerActor = $this->actorStoreFactory
->getActorStore( $block->getBlocker()->getWikiId() )
->acquireActorId( $block->getBlocker(), $dbw );
$blockArray = [
'ipb_address' => (string)$target,
@ -395,7 +398,9 @@ class DatabaseBlockStore {
throw new \RuntimeException( __METHOD__ . ': this block does not have a blocker' );
}
$dbw = $this->loadBalancer->getConnectionRef( DB_PRIMARY );
$blockerActor = $this->actorNormalization->acquireActorId( $block->getBlocker(), $dbw );
$blockerActor = $this->actorStoreFactory
->getActorNormalization()
->acquireActorId( $block->getBlocker(), $dbw );
$blockArray = [
'ipb_by_actor' => $blockerActor,
'ipb_create_account' => $block->isCreateAccountBlocked(),
@ -472,7 +477,7 @@ class DatabaseBlockStore {
'LIMIT' => 1,
];
$actor = $this->actorNormalization->findActorId( $target, $dbr );
$actor = $this->actorStoreFactory->getActorNormalization()->findActorId( $target, $dbr );
if ( !$actor ) {
$this->logger->debug( 'No actor found to retroactively autoblock' );
return [];

View file

@ -62,7 +62,7 @@ class DatabaseBlockStoreTest extends MediaWikiIntegrationTestCase {
$config
),
'logger' => new NullLogger(),
'actorNormalization' => $services->getActorNormalization(),
'actorStoreFactory' => $services->getActorStoreFactory(),
'blockRestrictionStore' => $services->getBlockRestrictionStore(),
'commentStore' => $services->getCommentStore(),
'hookContainer' => $hookContainer,