MediaWiki  1.34.0
SpecialEmailInvalidate.php
Go to the documentation of this file.
1 <?php
31  public function __construct() {
32  parent::__construct( 'Invalidateemail', 'editmyprivateinfo' );
33  }
34 
35  public function doesWrites() {
36  return true;
37  }
38 
39  function execute( $code ) {
40  // Ignore things like master queries/connections on GET requests.
41  // It's very convenient to just allow formless link usage.
42  $trxProfiler = Profiler::instance()->getTransactionProfiler();
43 
44  $this->setHeaders();
45  $this->checkReadOnly();
46  $this->checkPermissions();
47 
48  $old = $trxProfiler->setSilenced( true );
49  $this->attemptInvalidate( $code );
50  $trxProfiler->setSilenced( $old );
51  }
52 
59  private function attemptInvalidate( $code ) {
60  $user = User::newFromConfirmationCode( $code, User::READ_LATEST );
61  if ( !is_object( $user ) ) {
62  $this->getOutput()->addWikiMsg( 'confirmemail_invalid' );
63 
64  return;
65  }
66 
67  $user->invalidateEmail();
68  $user->saveSettings();
69  $this->getOutput()->addWikiMsg( 'confirmemail_invalidated' );
70 
71  if ( !$this->getUser()->isLoggedIn() ) {
72  $this->getOutput()->returnToMain();
73  }
74  }
75 }
SpecialPage\getOutput
getOutput()
Get the OutputPage being used for this instance.
Definition: SpecialPage.php:719
Profiler\instance
static instance()
Singleton.
Definition: Profiler.php:63
UnlistedSpecialPage
Shortcut to construct a special page which is unlisted by default.
Definition: UnlistedSpecialPage.php:29
SpecialPage\checkPermissions
checkPermissions()
Checks if userCanExecute, and if not throws a PermissionsError.
Definition: SpecialPage.php:315
SpecialEmailInvalidate
Special page allows users to cancel an email confirmation using the e-mail confirmation code.
Definition: SpecialEmailInvalidate.php:30
SpecialPage\setHeaders
setHeaders()
Sets headers - this should be called from the execute() method of all derived classes!
Definition: SpecialPage.php:537
SpecialPage\getUser
getUser()
Shortcut to get the User executing this instance.
Definition: SpecialPage.php:729
SpecialEmailInvalidate\execute
execute( $code)
Default execute method Checks user permissions.
Definition: SpecialEmailInvalidate.php:39
SpecialEmailInvalidate\__construct
__construct()
Definition: SpecialEmailInvalidate.php:31
SpecialEmailInvalidate\attemptInvalidate
attemptInvalidate( $code)
Attempt to invalidate the user's email address and show success or failure as needed; if successful,...
Definition: SpecialEmailInvalidate.php:59
SpecialEmailInvalidate\doesWrites
doesWrites()
Indicates whether this special page may perform database writes.
Definition: SpecialEmailInvalidate.php:35
SpecialPage\checkReadOnly
checkReadOnly()
If the wiki is currently in readonly mode, throws a ReadOnlyError.
Definition: SpecialPage.php:328
User\newFromConfirmationCode
static newFromConfirmationCode( $code, $flags=0)
Factory method to fetch whichever user has a given email confirmation code.
Definition: User.php:650