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

Revision: 95082
Author:   ialex
Date:     2011-08-20 13:32:18 +0000 (Sat, 20 Aug 2011)
Log Message:
-----------
Per Tbleher, fix for r94640: use EditPage instead of directly 
WikiPage::doEdit() so that checks on block and spam stuff can be done.

Modified Paths:
--------------
    trunk/extensions/Commentbox/SpecialAddComment_body.php

Modified: trunk/extensions/Commentbox/SpecialAddComment_body.php
===================================================================
--- trunk/extensions/Commentbox/SpecialAddComment_body.php      2011-08-20 
13:22:31 UTC (rev 95081)
+++ trunk/extensions/Commentbox/SpecialAddComment_body.php      2011-08-20 
13:32:18 UTC (rev 95082)
@@ -20,12 +20,7 @@
                        return;
                }
                $this->setHeaders();
-               
 
-               if ( !$this->userCanExecute( $wgUser ) ) {
-                       $this->displayRestrictionError();
-                       return;
-               }
                $Pagename = $wgRequest->getText( 'wpPageName' );
                $Author   = $wgRequest->getText( 'wpAuthor', '' );
                $Comment  = $wgRequest->getText( 'wpComment', '' );
@@ -75,14 +70,38 @@
                // Append <br /> after each newline, except if the user started 
a new paragraph
                $Comment = preg_replace( '/(?<!\n)\n(?!\n)/', "<br />\n", 
$Comment );
                $text .= "\n\n" . $subject . $Comment . "\n<br />" . $sig;
-               $status = $article->doEdit( $text, wfMsgForContent( 
'commentbox-log' ) );
 
-               if ( $status->isOK() ) {
+               $reqArr = array(
+                       'wpTextbox1' => $text,
+                       'wpSummary' => wfMsgForContent( 'commentbox-log' ),
+                       'wpEditToken' => $wgUser->editToken(),
+                       'wpIgnoreBlankSummary' => '',
+                       'wpStarttime' => wfTimestampNow(),
+                       'wpEdittime' => $article->getTimestamp(),
+               );
+               $request = new FauxRequest( $reqArr, true );
+               $ep = new EditPage( $article );
+               $ep->setContextTitle( $title );
+               $ep->importFormData( $request );
+               $details = array(); // Passed by ref
+               $retval = $ep->internalAttemptSave( $details );
+
+               switch ( $retval ) {
+               case EditPage::AS_SUCCESS_UPDATE:
                        $wgOut->redirect( $title->getFullURL() );
-               } else {
-                       $wgOut->setPageTitle( wfMsg( 
'commentbox-errorpage-title' ) );
-                       $wgOut->addWikiText( $status->getWikiText() );
-                       $wgOut->returnToMain( false, $title );
+                       break;
+               case EditPage::AS_SPAM_ERROR:
+                       $ep->spamPageWithContent( $details['spam'] );
+                       break;
+               case EditPage::AS_BLOCKED_PAGE_FOR_USER:
+                       $wgOut->blockedPage();
+                       break;
+               case EditPage::AS_READ_ONLY_PAGE_ANON:
+               case EditPage::AS_READ_ONLY_PAGE_LOGGED:
+                       $wgOut->permissionRequired( 'edit' );
+                       break;
+               case EditPage::AS_READ_ONLY_PAGE:
+                       $wgOut->readOnlyPage();
                }
        }
 


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

Reply via email to