http://www.mediawiki.org/wiki/Special:Code/MediaWiki/96627

Revision: 96627
Author:   brion
Date:     2011-09-08 22:47:57 +0000 (Thu, 08 Sep 2011)
Log Message:
-----------
* (bug 30823) Clarify error messages on Special:EmailCapture

"Invalid code" and "already confirmed" are now called out as distinct error 
responses, so submitting twice by accident doesn't show a scary "failed!" 
message.

Modified Paths:
--------------
    trunk/extensions/EmailCapture/EmailCapture.i18n.php
    trunk/extensions/EmailCapture/SpecialEmailCapture.php

Modified: trunk/extensions/EmailCapture/EmailCapture.i18n.php
===================================================================
--- trunk/extensions/EmailCapture/EmailCapture.i18n.php 2011-09-08 22:38:20 UTC 
(rev 96626)
+++ trunk/extensions/EmailCapture/EmailCapture.i18n.php 2011-09-08 22:47:57 UTC 
(rev 96627)
@@ -15,6 +15,8 @@
        'emailcapture' => 'E-mail verification',
        'emailcapture-desc' => 'Capture e-mail addresses, and allow users to 
verify them through e-mail',
        'emailcapture-failure' => "Your e-mail was '''not''' verified.",
+       'emailcapture-invalid-code' => 'Invalid confirmation code.',
+       'emailcapture-already-confirmed' => 'Your e-mail address has already 
been confirmed.',
        'emailcapture-response-subject' => '{{SITENAME}} e-mail address 
verification',
        'emailcapture-response-body' => 'Hello!
 

Modified: trunk/extensions/EmailCapture/SpecialEmailCapture.php
===================================================================
--- trunk/extensions/EmailCapture/SpecialEmailCapture.php       2011-09-08 
22:38:20 UTC (rev 96626)
+++ trunk/extensions/EmailCapture/SpecialEmailCapture.php       2011-09-08 
22:47:57 UTC (rev 96627)
@@ -14,16 +14,28 @@
                $code = $wgRequest->getVal( 'verify' );
                if ( $code !== null ) {
                        $dbw = wfGetDB( DB_MASTER );
-                       $dbw->update(
+                       $row = $dbw->selectRow(
                                'email_capture',
-                               array( 'ec_verified' => 1 ),
+                               array( 'ec_verified' ),
                                array( 'ec_code' => $code ),
                                __METHOD__
                        );
-                       if ( $dbw->affectedRows() ) {
-                               $wgOut->addWikiMsg( 'emailcapture-success' );
+                       if ( $row && !$row->ec_verified ) {
+                               $dbw->update(
+                                       'email_capture',
+                                       array( 'ec_verified' => 1 ),
+                                       array( 'ec_code' => $code ),
+                                       __METHOD__
+                               );
+                               if ( $dbw->affectedRows() ) {
+                                       $wgOut->addWikiMsg( 
'emailcapture-success' );
+                               } else {
+                                       $wgOut->addWikiMsg( 
'emailcapture-failure' );
+                               }
+                       } else if ( $row && $row->ec_verified ) {
+                               $wgOut->addWikiMsg( 
'emailcapture-already-confirmed' );
                        } else {
-                               $wgOut->addWikiMsg( 'emailcapture-failure' );
+                               $wgOut->addWikiMsg( 'emailcapture-invalid-code' 
);
                        }
                } else {
                        // Show simple form for submitting verification code


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to