MediaWiki REL1_32
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
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:47
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition User.php:592
this hook is for auditing only $req
Definition hooks.txt:1018
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:2050
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
$params