blockDisablesLogin = (bool)$params['blockDisablesLogin']; } } public function setConfig( Config $config ) { parent::setConfig( $config ); if ( $this->blockDisablesLogin === null ) { $this->blockDisablesLogin = $this->config->get( 'BlockDisablesLogin' ); } } public function getAuthenticationRequests( $action, array $options ) { return []; } public function beginSecondaryAuthentication( $user, array $reqs ) { if ( !$this->blockDisablesLogin ) { return AuthenticationResponse::newAbstain(); } elseif ( $user->isBlocked() ) { return AuthenticationResponse::newFail( new \Message( 'login-userblocked', [ $user->getName() ] ) ); } else { return AuthenticationResponse::newPass(); } } public function beginSecondaryAccountCreation( $user, $creator, array $reqs ) { return AuthenticationResponse::newAbstain(); } public function testUserForCreation( $user, $autocreate, array $options = [] ) { $block = $user->isBlockedFromCreateAccount(); if ( $block ) { if ( $block->mReason ) { $reason = $block->mReason; } else { $msg = \Message::newFromKey( 'blockednoreason' ); if ( !\RequestContext::getMain()->getUser()->isSafeToLoad() ) { $msg->inContentLanguage(); } $reason = $msg->text(); } $errorParams = [ $block->getTarget(), $reason, $block->getByName() ]; if ( $block->getType() === \Block::TYPE_RANGE ) { $errorMessage = 'cantcreateaccount-range-text'; $errorParams[] = $this->manager->getRequest()->getIP(); } else { $errorMessage = 'cantcreateaccount-text'; } return StatusValue::newFatal( new \Message( $errorMessage, $errorParams ) ); } else { return StatusValue::newGood(); } } }