MediaWiki REL1_35
EmailNotificationSecondaryAuthenticationProvider.php
Go to the documentation of this file.
1<?php
2
3namespace MediaWiki\Auth;
4
5use Config;
6
15{
18
24 public function __construct( $params = [] ) {
25 if ( isset( $params['sendConfirmationEmail'] ) ) {
26 $this->sendConfirmationEmail = (bool)$params['sendConfirmationEmail'];
27 }
28 }
29
30 public function setConfig( Config $config ) {
31 parent::setConfig( $config );
32
33 if ( $this->sendConfirmationEmail === null ) {
34 $this->sendConfirmationEmail = $this->config->get( 'EnableEmail' )
35 && $this->config->get( 'EmailAuthentication' );
36 }
37 }
38
39 public function getAuthenticationRequests( $action, array $options ) {
40 return [];
41 }
42
43 public function beginSecondaryAuthentication( $user, array $reqs ) {
45 }
46
47 public function beginSecondaryAccountCreation( $user, $creator, array $reqs ) {
48 if (
49 $this->sendConfirmationEmail
50 && $user->getEmail()
51 && !$this->manager->getAuthenticationSessionData( 'no-email' )
52 ) {
53 // TODO show 'confirmemail_oncreate'/'confirmemail_sendfailed' message
54 wfGetDB( DB_MASTER )->onTransactionCommitOrIdle(
55 function () use ( $user ) {
56 $user = $user->getInstanceForUpdate();
57 $status = $user->sendConfirmationMail();
58 $user->saveSettings();
59 if ( !$status->isGood() ) {
60 $this->logger->warning( 'Could not send confirmation email: ' .
61 $status->getWikiText( false, false, 'en' ) );
62 }
63 },
64 __METHOD__
65 );
66 }
67
69 }
70}
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
A base class that implements some of the boilerplate for a SecondaryAuthenticationProvider.
Handles email notification / email address confirmation for account creation.
beginSecondaryAccountCreation( $user, $creator, array $reqs)
Start an account creation flow.
getAuthenticationRequests( $action, array $options)
Return the applicable list of AuthenticationRequests.
Interface for configuration instances.
Definition Config.php:30
const DB_MASTER
Definition defines.php:29