MediaWiki REL1_34
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}
A base class that implements some of the boilerplate for a PreAuthenticationProvider.
This serves as the entry point to the authentication system.
This is a value object for authentication requests.
An authentication request that allows users with sufficiently high privileges to skip the title black...
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 ...
testForAccountCreation( $user, $creator, array $reqs)
Determine whether an account creation may begin.
getAuthenticationRequests( $action, array $options)
Return the applicable list of AuthenticationRequests.
testUserForCreation( $user, $autocreate, array $options=[])
Determine whether an account may be created.
static userCanOverride( $user, $action)
Inidcates whether user can override blacklist on certain action.
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition User.php:51