From 7348c411a7e682fe49798ed05d4e6349b8be7962 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Tue, 13 Sep 2016 01:10:35 -0700 Subject: [PATCH] Special:ChangeContentModel: Run EditFilterMergedContent hook This will allow tools like AbuseFilter to filter changes made through the special page, and matches the EditPage behavior that already runs this hook. Bug: T145489 Change-Id: I3204e3a228af2cdd4e2ab4e8c760cc126a8e1947 --- includes/specials/SpecialChangeContentModel.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/includes/specials/SpecialChangeContentModel.php b/includes/specials/SpecialChangeContentModel.php index b37c47556f..dd7f0ed10c 100644 --- a/includes/specials/SpecialChangeContentModel.php +++ b/includes/specials/SpecialChangeContentModel.php @@ -221,6 +221,22 @@ class SpecialChangeContentModel extends FormSpecialPage { # Truncate for whole multibyte characters. $reason = $wgContLang->truncate( $reason, 255 ); + // Run edit filters + $derivativeContext = new DerivativeContext( $this->getContext() ); + $derivativeContext->setTitle( $this->title ); + $derivativeContext->setWikiPage( $page ); + $status = new Status(); + if ( !Hooks::run( 'EditFilterMergedContent', + [ $derivativeContext, $newContent, $status, $reason, + $user, false ] ) + ) { + if ( $status->isGood() ) { + // TODO: extensions should really specify an error message + $status->fatal( 'hookaborted' ); + } + return $status; + } + $status = $page->doEditContent( $newContent, $reason, -- 2.20.1