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