The defaults are set to the same value as page moves.
Change-Id: I72d6c35ecda475101c1c909715e4ba693dd214f6
'ip' => [ 8, 60 ],
'newbie' => [ 8, 60 ],
],
+ // Changing the content model of a page
+ 'editcontentmodel' => [
+ 'newbie' => [ 2, 120 ],
+ 'user' => [ 8, 60 ],
+ ],
];
/**
$status->value = self::AS_READ_ONLY_PAGE;
return $status;
}
- if ( $wgUser->pingLimiter() || $wgUser->pingLimiter( 'linkpurge', 0 ) ) {
+ if ( $wgUser->pingLimiter() || $wgUser->pingLimiter( 'linkpurge', 0 )
+ || ( $changingContentModel && $wgUser->pingLimiter( 'editcontentmodel' ) )
+ ) {
$status->fatal( 'actionthrottledtext' );
$status->value = self::AS_RATE_LIMITED;
return $status;
// Page doesn't exist, create an empty content object
$newContent = ContentHandler::getForModelID( $data['model'] )->makeEmptyContent();
}
+
+ // All other checks have passed, let's check rate limits
+ if ( $user->pingLimiter( 'editcontentmodel' ) ) {
+ throw new ThrottledError();
+ }
+
$flags = $this->oldRevision ? EDIT_UPDATE : EDIT_NEW;
$flags |= EDIT_INTERNAL;
if ( $user->isAllowed( 'bot' ) ) {