MediaWiki r21348 - Code Review

Jump to: navigation, search
Repository:MediaWiki
Revision:r21347‎ | r21348 (on ViewVC)‎ | r21349 >
Date:12:41, 18 April 2007
Author:daniel
Status:old
Tags:
Comment:
fixced edit token check for anon users
Modified paths:

Diff [purge]

Index: trunk/extensions/ContactPage/SpecialContact.php
@@ -39,6 +39,7 @@
4040 */
4141 function execute( $par ) {
4242 global $wgUser, $wgOut, $wgRequest, $wgEnableEmail, $wgContactUser, $wgContactSender;
 43+ $fname = "SpecialContact::execute";
4344
4445 if( !$wgEnableEmail || !$wgContactUser || !$wgContactSender) {
4546 $wgOut->showErrorPage( "nosuchspecialpage", "nospecialpagetext" );
@@ -57,11 +58,29 @@
5859 $f = new EmailContactForm( $nu );
5960
6061 if ( "success" == $action ) {
 62+ wfDebug( "$fname: success.\n" );
6163 $f->showSuccess( );
62 - } else if ( "submit" == $action && $wgRequest->wasPosted() &&
63 - $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
64 - $f->doSubmit();
 64+ } else if ( "submit" == $action && $wgRequest->wasPosted() ) {#
 65+ $token = $wgRequest->getVal( 'wpEditToken' );
 66+
 67+ if( $wgUser->isAnon() ) {
 68+ # Anonymous users may not have a session
 69+ # open. Check for suffix anyway.
 70+ $tokenOk = ( EDIT_TOKEN_SUFFIX == $token );
 71+ } else {
 72+ $tokenOk = $wgUser->matchEditToken( $token );
 73+ }
 74+
 75+ if ( $tokenOk ) {
 76+ wfDebug( "$fname: submit\n" );
 77+ $f->doSubmit();
 78+ } else {
 79+ wfDebug( "$fname: bad token (".($wgUser->isAnon()?'anon':'user')."): $token\n" );
 80+ $wgOut->addWikiText( wfMsg( 'sessionfailure' ) );
 81+ $f->showForm();
 82+ }
6583 } else {
 84+ wfDebug( "$fname: form\n" );
6685 $f->showForm();
6786 }
6887 }
@@ -124,7 +143,7 @@
125144
126145 $titleObj = SpecialPage::getTitleFor( "Contact" );
127146 $action = $titleObj->escapeLocalURL( "action=submit" );
128 - $token = $wgUser->editToken();
 147+ $token = $wgUser->isAnon() ? EDIT_TOKEN_SUFFIX : $wgUser->editToken(); //this kind of sucks, really...
129148
130149 $wgOut->addHTML( "
131150 <form id=\"emailuser\" method=\"post\" action=\"{$action}\">