MediaWiki  1.34.0
TitleBlacklistPreAuthenticationProvider.php
Go to the documentation of this file.
1 <?php
2 
6 
9 
10  public function __construct( $params = [] ) {
11  global $wgTitleBlacklistBlockAutoAccountCreation;
12 
13  $params += [
14  'blockAutoAccountCreation' => $wgTitleBlacklistBlockAutoAccountCreation
15  ];
16 
17  $this->blockAutoAccountCreation = (bool)$params['blockAutoAccountCreation'];
18  }
19 
20  public function getAuthenticationRequests( $action, array $options ) {
21  $needOverrideOption = false;
22  switch ( $action ) {
23  case AuthManager::ACTION_CREATE:
24  $user = User::newFromName( $options['username'] ) ?: new User();
25  $needOverrideOption = TitleBlacklist::userCanOverride( $user, 'new-account' );
26  break;
27  }
28 
29  return $needOverrideOption ? [ new TitleBlacklistAuthenticationRequest() ] : [];
30  }
31 
32  public function testForAccountCreation( $user, $creator, array $reqs ) {
34  $req = AuthenticationRequest::getRequestByClass( $reqs,
35  TitleBlacklistAuthenticationRequest::class );
36  // For phan check, to ensure that $req is instance of \TitleBlacklistAuthenticationRequest
37  // or null
38  if ( $req instanceof TitleBlacklistAuthenticationRequest ) {
39  $override = $req->ignoreTitleBlacklist;
40  } else {
41  $override = false;
42  }
43 
44  return TitleBlacklistHooks::testUserName( $user->getName(), $creator, $override, true );
45  }
46 
47  public function testUserForCreation( $user, $autocreate, array $options = [] ) {
48  $sv = StatusValue::newGood();
49  $creator = RequestContext::getMain()->getUser();
50 
51  if ( !$autocreate && empty( $options['creating'] ) || $this->blockAutoAccountCreation ) {
53  $user->getName(), $creator, true, (bool)$autocreate
54  ) );
55  }
56  return $sv;
57  }
58 }
TitleBlacklistPreAuthenticationProvider
Definition: TitleBlacklistPreAuthenticationProvider.php:7
TitleBlacklistPreAuthenticationProvider\getAuthenticationRequests
getAuthenticationRequests( $action, array $options)
Return the applicable list of AuthenticationRequests.
Definition: TitleBlacklistPreAuthenticationProvider.php:20
true
return true
Definition: router.php:92
User\newFromName
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition: User.php:515
TitleBlacklistAuthenticationRequest
An authentication request that allows users with sufficiently high privileges to skip the title black...
Definition: TitleBlacklistAuthenticationRequest.php:9
TitleBlacklistPreAuthenticationProvider\testUserForCreation
testUserForCreation( $user, $autocreate, array $options=[])
Determine whether an account may be created.
Definition: TitleBlacklistPreAuthenticationProvider.php:47
TitleBlacklistPreAuthenticationProvider\testForAccountCreation
testForAccountCreation( $user, $creator, array $reqs)
Determine whether an account creation may begin.
Definition: TitleBlacklistPreAuthenticationProvider.php:32
StatusValue\newGood
static newGood( $value=null)
Factory function for good results.
Definition: StatusValue.php:81
RequestContext\getMain
static getMain()
Get the RequestContext object associated with the main request.
Definition: RequestContext.php:431
MediaWiki\Auth\AuthManager
This serves as the entry point to the authentication system.
Definition: AuthManager.php:85
TitleBlacklistPreAuthenticationProvider\__construct
__construct( $params=[])
Definition: TitleBlacklistPreAuthenticationProvider.php:10
TitleBlacklist\userCanOverride
static userCanOverride( $user, $action)
Inidcates whether user can override blacklist on certain action.
Definition: TitleBlacklist.php:344
MediaWiki\Auth\AbstractPreAuthenticationProvider
A base class that implements some of the boilerplate for a PreAuthenticationProvider.
Definition: AbstractPreAuthenticationProvider.php:29
TitleBlacklistHooks\testUserName
static testUserName( $userName, User $creatingUser, $override=true, $log=false)
Check whether a user name is acceptable for account creation or autocreation, and explain why not if ...
Definition: TitleBlacklistHooks.php:142
User
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition: User.php:51
MediaWiki\Auth\AuthenticationRequest
This is a value object for authentication requests.
Definition: AuthenticationRequest.php:37
TitleBlacklistPreAuthenticationProvider\$blockAutoAccountCreation
$blockAutoAccountCreation
Definition: TitleBlacklistPreAuthenticationProvider.php:8