X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialConfirmemail.php;h=8d1c3a7e20d22c822d9821939deda1d557af735c;hb=a7e366665c449832a2e07047683a50476da2cdf0;hp=fd0425a87120bb62a308803c512c4dd33f806171;hpb=3b3fe578ef34e912213631e2d37f0d7b93e19650;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialConfirmemail.php b/includes/SpecialConfirmemail.php index fd0425a871..8d1c3a7e20 100644 --- a/includes/SpecialConfirmemail.php +++ b/includes/SpecialConfirmemail.php @@ -4,22 +4,18 @@ * Special page allows users to request email confirmation message, and handles * processing of the confirmation code when the link in the email is followed * - * @package MediaWiki - * @subpackage Special pages + * @addtogroup SpecialPage + * @author Brion Vibber * @author Rob Church */ - -/** - * Main execution point - * - * @param $par Parameters passed to the page - */ -function wfSpecialConfirmemail( $par ) { - $form = new EmailConfirmation(); - $form->execute( $par ); -} - -class EmailConfirmation extends SpecialPage { +class EmailConfirmation extends UnlistedSpecialPage { + + /** + * Constructor + */ + public function __construct() { + parent::__construct( 'Confirmemail' ); + } /** * Main execution point @@ -28,12 +24,17 @@ class EmailConfirmation extends SpecialPage { */ function execute( $code ) { global $wgUser, $wgOut; + $this->setHeaders(); if( empty( $code ) ) { if( $wgUser->isLoggedIn() ) { - $this->showRequestForm(); + if( User::isValidEmailAddr( $wgUser->getEmail() ) ) { + $this->showRequestForm(); + } else { + $wgOut->addWikiText( wfMsg( 'confirmemail_noemail' ) ); + } } else { - $title = Title::makeTitle( NS_SPECIAL, 'Userlogin' ); - $self = Title::makeTitle( NS_SPECIAL, 'Confirmemail' ); + $title = SpecialPage::getTitleFor( 'Userlogin' ); + $self = SpecialPage::getTitleFor( 'Confirmemail' ); $skin = $wgUser->getSkin(); $llink = $skin->makeKnownLinkObj( $title, wfMsgHtml( 'loginreqlink' ), 'returnto=' . $self->getPrefixedUrl() ); $wgOut->addHtml( wfMsgWikiHtml( 'confirmemail_needlogin', $llink ) ); @@ -50,15 +51,21 @@ class EmailConfirmation extends SpecialPage { global $wgOut, $wgUser, $wgLang, $wgRequest; if( $wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getText( 'token' ) ) ) { $ok = $wgUser->sendConfirmationMail(); - $message = WikiError::isError( $ok ) ? 'confirmemail_sendfailed' : 'confirmemail_sent'; - $wgOut->addWikiText( wfMsg( $message ) ); + if ( WikiError::isError( $ok ) ) { + $wgOut->addWikiText( wfMsg( 'confirmemail_sendfailed', $ok->toString() ) ); + } else { + $wgOut->addWikiText( wfMsg( 'confirmemail_sent' ) ); + } } else { if( $wgUser->isEmailConfirmed() ) { $time = $wgLang->timeAndDate( $wgUser->mEmailAuthenticated, true ); $wgOut->addWikiText( wfMsg( 'emailauthenticated', $time ) ); } + if( $wgUser->isEmailConfirmationPending() ) { + $wgOut->addWikiText( wfMsg( 'confirmemail_pending' ) ); + } $wgOut->addWikiText( wfMsg( 'confirmemail_text' ) ); - $self = Title::makeTitle( NS_SPECIAL, 'Confirmemail' ); + $self = SpecialPage::getTitleFor( 'Confirmemail' ); $form = wfOpenElement( 'form', array( 'method' => 'post', 'action' => $self->getLocalUrl() ) ); $form .= wfHidden( 'token', $wgUser->editToken() ); $form .= wfSubmitButton( wfMsgHtml( 'confirmemail_send' ) ); @@ -81,7 +88,7 @@ class EmailConfirmation extends SpecialPage { $message = $wgUser->isLoggedIn() ? 'confirmemail_loggedin' : 'confirmemail_success'; $wgOut->addWikiText( wfMsg( $message ) ); if( !$wgUser->isLoggedIn() ) { - $title = Title::makeTitle( NS_SPECIAL, 'Userlogin' ); + $title = SpecialPage::getTitleFor( 'Userlogin' ); $wgOut->returnToMain( true, $title->getPrefixedText() ); } } else {