From: Tim Starling Date: Sun, 12 Oct 2008 14:29:55 +0000 (+0000) Subject: Add readOnlyBySection setting, to replace live hack. X-Git-Tag: 1.31.0-rc.0~44780 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/operations/recherche.php?a=commitdiff_plain;h=d22bd3cb1c347074f0bc551afae998fd4bde3fd6;p=lhc%2Fweb%2Fwiklou.git Add readOnlyBySection setting, to replace live hack. --- 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 ) {