* (bug 12553) Fixed invalid XHTML in edit conflict screen
[lhc/web/wiklou.git] / includes / SpecialEmailuser.php
index cf422a5..7104c52 100644 (file)
@@ -4,11 +4,11 @@
  * @addtogroup SpecialPage
  */
 
-/**
- *
- */
 require_once('UserMailer.php');
 
+/**
+ * @todo document
+ */
 function wfSpecialEmailuser( $par ) {
        global $wgUser, $wgOut, $wgRequest, $wgEnableEmail, $wgEnableUserEmail;
 
@@ -45,17 +45,26 @@ function wfSpecialEmailuser( $par ) {
                return;
        }
 
+       if ( $wgUser->isBlockedFromEmailUser() ) {
+               // User has been blocked from sending e-mail. Show the std blocked form.
+               wfDebug( "User is blocked from sending e-mail.\n" );
+               $wgOut->blockedPage();
+               return;
+       }
+
        $f = new EmailUserForm( $nu );
 
        if ( "success" == $action ) {
                $f->showSuccess( $nu );
        } else if ( "submit" == $action && $wgRequest->wasPosted() &&
+                               $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) 
+       {
                # Check against the rate limiter
                if( $wgUser->pingLimiter( 'emailuser' ) ) {
                        $wgOut->rateLimited();
                        return;
                }
-               $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
+
                $f->doSubmit();
        } else {
                $f->showForm();
@@ -63,7 +72,7 @@ function wfSpecialEmailuser( $par ) {
 }
 
 /**
- * @todo document
+ * Implements the Special:Emailuser web interface, and invokes userMailer for sending the email message.
  * @addtogroup SpecialPage
  */
 class EmailUserForm {
@@ -106,7 +115,7 @@ class EmailUserForm {
                $titleObj = SpecialPage::getTitleFor( "Emailuser" );
                $action = $titleObj->escapeLocalURL( "target=" .
                        urlencode( $this->target->getName() ) . "&action=submit" );
-               $token = $wgUser->editToken();
+               $token = htmlspecialchars( $wgUser->editToken() );
 
                $wgOut->addHTML( "
 <form id=\"emailuser\" method=\"post\" action=\"{$action}\">
@@ -124,7 +133,7 @@ class EmailUserForm {
 </tr>
 </table>
 <span id='wpTextLabel'><label for=\"wpText\">{$emm}:</label><br /></span>
-<textarea name=\"wpText\" rows='20' cols='80' wrap='virtual' style=\"width: 100%;\">" . htmlspecialchars( $this->text ) .
+<textarea id=\"wpText\" name=\"wpText\" rows='20' cols='80' style=\"width: 100%;\">" . htmlspecialchars( $this->text ) .
 "</textarea>
 " . wfCheckLabel( $emc, 'wpCCMe', 'wpCCMe', $wgUser->getBoolOption( 'ccmeonemails' ) ) . "<br />
 <input type='submit' name=\"wpSend\" value=\"{$ems}\" />
@@ -183,4 +192,3 @@ class EmailUserForm {
                $wgOut->returnToMain( false, $user->getUserPage() );
        }
 }
-?>