summaryrefslogtreecommitdiff
path: root/includes/db/LBFactory_Multi.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/db/LBFactory_Multi.php')
-rw-r--r--includes/db/LBFactory_Multi.php14
1 files changed, 12 insertions, 2 deletions
diff --git a/includes/db/LBFactory_Multi.php b/includes/db/LBFactory_Multi.php
index 48c2d99b..820aa2ea 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 ) {