From d22bd3cb1c347074f0bc551afae998fd4bde3fd6 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Sun, 12 Oct 2008 14:29:55 +0000 Subject: [PATCH] Add readOnlyBySection setting, to replace live hack. --- includes/db/LBFactory_Multi.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/includes/db/LBFactory_Multi.php b/includes/db/LBFactory_Multi.php index 48c2d99b67..820aa2ea1b 100644 --- a/includes/db/LBFactory_Multi.php +++ b/includes/db/LBFactory_Multi.php @@ -36,6 +36,8 @@ * * masterTemplateOverrides An override array for all master servers. * + * readOnlyBySection A map of section name to read-only message. Missing or false for read/write. + * * @ingroup Database */ class LBFactory_Multi extends LBFactory { @@ -44,7 +46,7 @@ class LBFactory_Multi extends LBFactory { // Optional settings var $groupLoadsBySection = array(), $groupLoadsByDB = array(), $hostsByName = array(); var $externalLoads = array(), $externalTemplateOverrides, $templateOverridesByServer; - var $templateOverridesByCluster, $masterTemplateOverrides; + var $templateOverridesByCluster, $masterTemplateOverrides, $readOnlyBySection = array(); // Other stuff var $conf, $mainLBs = array(), $extLBs = array(); var $lastWiki, $lastSection; @@ -55,7 +57,8 @@ class LBFactory_Multi extends LBFactory { $required = array( 'sectionsByDB', 'sectionLoads', 'serverTemplate' ); $optional = array( 'groupLoadsBySection', 'groupLoadsByDB', 'hostsByName', 'externalLoads', 'externalTemplateOverrides', 'templateOverridesByServer', - 'templateOverridesByCluster', 'masterTemplateOverrides' ); + 'templateOverridesByCluster', 'masterTemplateOverrides', + 'readOnlyBySection' ); foreach ( $required as $key ) { if ( !isset( $conf[$key] ) ) { @@ -69,6 +72,13 @@ class LBFactory_Multi extends LBFactory { $this->$key = $conf[$key]; } } + + // Check for read-only mode + $section = $this->getSectionForWiki(); + if ( !empty( $this->readOnlyBySection[$section] ) ) { + global $wgReadOnly; + $wgReadOnly = $this->readOnlyBySection[$section]; + } } function getSectionForWiki( $wiki = false ) { -- 2.20.1