From 5b88feca5847c1df1eb9bd2b68f6b789e5785eb1 Mon Sep 17 00:00:00 2001 From: John Du Hart Date: Tue, 15 Nov 2011 01:19:04 +0000 Subject: [PATCH] Adding function for checking if the database is in readonly mode Replacing some code in SpecialPageForm to use these new functions --- includes/SpecialPage.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php index 7d51021677..1c092daf30 100644 --- a/includes/SpecialPage.php +++ b/includes/SpecialPage.php @@ -521,6 +521,18 @@ class SpecialPage { } } + /** + * If the wiki is currently in readonly mode, throws a ReadOnlyError + * + * @since 1.19 + * @throws ReadOnlyError + */ + public function checkReadOnly() { + if ( wfReadOnly() ) { + throw new ReadOnlyError; + } + } + /** * Sets headers - this should be called from the execute() method of all derived classes! */ @@ -816,13 +828,11 @@ abstract class FormSpecialPage extends SpecialPage { * @throws ErrorPageError */ protected function checkExecutePermissions( User $user ) { - if ( $this->requiresWrite() && wfReadOnly() ) { - throw new ReadOnlyError(); + if ( $this->requiresWrite() ) { + $this->checkReadOnly(); } - if ( !$this->userCanExecute( $this->getUser() ) ) { - throw new PermissionsError( $this->getRestriction() ); - } + $this->checkPermissions(); if ( $this->requiresUnblock() && $user->isBlocked() ) { $block = $user->mBlock; -- 2.20.1