MediaWiki REL1_31
CheckBlocksSecondaryAuthenticationProvider.php
Go to the documentation of this file.
1<?php
22namespace MediaWiki\Auth;
23
24use Config;
25use StatusValue;
26
34
36 protected $blockDisablesLogin = null;
37
43 public function __construct( $params = [] ) {
44 if ( isset( $params['blockDisablesLogin'] ) ) {
45 $this->blockDisablesLogin = (bool)$params['blockDisablesLogin'];
46 }
47 }
48
49 public function setConfig( Config $config ) {
50 parent::setConfig( $config );
51
52 if ( $this->blockDisablesLogin === null ) {
53 $this->blockDisablesLogin = $this->config->get( 'BlockDisablesLogin' );
54 }
55 }
56
57 public function getAuthenticationRequests( $action, array $options ) {
58 return [];
59 }
60
61 public function beginSecondaryAuthentication( $user, array $reqs ) {
62 if ( !$this->blockDisablesLogin ) {
64 } elseif ( $user->isBlocked() ) {
66 new \Message( 'login-userblocked', [ $user->getName() ] )
67 );
68 } else {
70 }
71 }
72
73 public function beginSecondaryAccountCreation( $user, $creator, array $reqs ) {
75 }
76
77 public function testUserForCreation( $user, $autocreate, array $options = [] ) {
78 $block = $user->isBlockedFromCreateAccount();
79 if ( $block ) {
80 if ( $block->mReason ) {
81 $reason = $block->mReason;
82 } else {
83 $msg = \Message::newFromKey( 'blockednoreason' );
84 if ( !\RequestContext::getMain()->getUser()->isSafeToLoad() ) {
85 $msg->inContentLanguage();
86 }
87 $reason = $msg->text();
88 }
89
90 $errorParams = [
91 $block->getTarget(),
92 $reason,
93 $block->getByName()
94 ];
95
96 if ( $block->getType() === \Block::TYPE_RANGE ) {
97 $errorMessage = 'cantcreateaccount-range-text';
98 $errorParams[] = $this->manager->getRequest()->getIP();
99 } else {
100 $errorMessage = 'cantcreateaccount-text';
101 }
102
103 return StatusValue::newFatal(
104 new \Message( $errorMessage, $errorParams )
105 );
106 } else {
107 return StatusValue::newGood();
108 }
109 }
110
111}
const TYPE_RANGE
Definition Block.php:85
A base class that implements some of the boilerplate for a SecondaryAuthenticationProvider.
Check if the user is blocked, and prevent authentication if so.
beginSecondaryAccountCreation( $user, $creator, array $reqs)
Start an account creation flow.
testUserForCreation( $user, $autocreate, array $options=[])
Determine whether an account may be created.
getAuthenticationRequests( $action, array $options)
Return the applicable list of AuthenticationRequests.
The Message class provides methods which fulfil two basic services:
Definition Message.php:159
static getMain()
Get the RequestContext object associated with the main request.
Generic operation result class Has warning/error list, boolean status and arbitrary value.
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition hooks.txt:2001
Interface for configuration instances.
Definition Config.php:28
$params