assertRequiredOptions( self::CONSTRUCTOR_OPTIONS ); $this->options = $options; $this->hookContainer = $hookContainer; $this->blockPermissionCheckerFactory = $blockPermissionCheckerFactory; $this->blockUtils = $blockUtils; $this->blockStore = $blockStore; $this->blockRestrictionStore = $blockRestrictionStore; $this->userFactory = $userFactory; $this->userEditTracker = $userEditTracker; $this->logger = $logger; $this->titleFactory = $titleFactory; $this->blockActionInfo = $blockActionInfo; } /** * Create BlockUser * * @param string|UserIdentity $target Target of the block * @param Authority $performer Performer of the block * @param string $expiry Expiry of the block (timestamp or 'infinity') * @param string $reason Reason of the block * @param array $blockOptions * @param array $blockRestrictions * @param array|null $tags Tags that should be assigned to the log entry * * @return BlockUser */ public function newBlockUser( $target, Authority $performer, string $expiry, string $reason = '', array $blockOptions = [], array $blockRestrictions = [], $tags = [] ): BlockUser { if ( $tags === null ) { $tags = []; } return new BlockUser( $this->options, $this->blockRestrictionStore, $this->blockPermissionCheckerFactory, $this->blockUtils, $this->blockActionInfo, $this->hookContainer, $this->blockStore, $this->userFactory, $this->userEditTracker, $this->logger, $this->titleFactory, $target, $performer, $expiry, $reason, $blockOptions, $blockRestrictions, $tags ); } /** * @param UserIdentity|string $target * @param Authority $performer * @param string $reason * @param string[] $tags * * @return UnblockUser */ public function newUnblockUser( $target, Authority $performer, string $reason, array $tags = [] ): UnblockUser { return new UnblockUser( $this->blockPermissionCheckerFactory, $this->blockStore, $this->blockUtils, $this->userFactory, $this->hookContainer, $target, $performer, $reason, $tags ); } }