blockDisablesLogin = (bool)$params['blockDisablesLogin']; } } /** @inheritDoc */ protected function postInitSetup() { $this->blockDisablesLogin ??= $this->config->get( MainConfigNames::BlockDisablesLogin ); } /** @inheritDoc */ public function getAuthenticationRequests( $action, array $options ) { return []; } /** @inheritDoc */ public function beginSecondaryAuthentication( $user, array $reqs ) { if ( !$this->blockDisablesLogin ) { return AuthenticationResponse::newAbstain(); } $block = $user->getBlock(); // Ignore IP blocks and partial blocks, $wgBlockDisablesLogin was meant for // blocks banning specific users. if ( $block && $block->isSitewide() && $block->isBlocking( $user ) ) { return AuthenticationResponse::newFail( new \Message( 'login-userblocked', [ $user->getName() ] ) ); } else { return AuthenticationResponse::newPass(); } } /** @inheritDoc */ public function beginSecondaryAccountCreation( $user, $creator, array $reqs ) { return AuthenticationResponse::newAbstain(); } }