wgNonincludableNamespaces option to disable inclusion for specific namespaces. Helps to make read-protection work

This commit is contained in:
Daniel Kinzler 2007-02-15 01:23:47 +00:00
parent 1cda921f5a
commit e67bceab97
2 changed files with 11 additions and 1 deletions

View file

@ -1038,6 +1038,13 @@ $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
$wgNamespaceProtection = array();
$wgNamespaceProtection[ NS_MEDIAWIKI ] = array( 'editinterface' );
/**
* Pages in namespaces in this array can not be used as templates.
* Elements must be numeric namespace ids.
* Among other things, this may be useful to enforce read-restrictions
* which may otherwise be bypassed by using the template machanism.
*/
$wgNonincludableNamespaces = array();
/**
* Number of seconds an account is required to age before

View file

@ -2887,7 +2887,7 @@ class Parser
* @private
*/
function braceSubstitution( $piece ) {
global $wgContLang, $wgLang, $wgAllowDisplayTitle;
global $wgContLang, $wgLang, $wgAllowDisplayTitle, $wgNonincludableNamespaces;
$fname = __METHOD__ /*. '-L' . count( $this->mArgStack )*/;
wfProfileIn( $fname );
wfProfileIn( __METHOD__.'-setup' );
@ -3065,6 +3065,9 @@ class Parser
$isHTML = true;
$this->disableCache();
}
} else if ( $wgNonincludableNamespaces && in_array( $title->getNamespace(), $wgNonincludableNamespaces ) ) {
$found = false; //access denied
wfDebug( "$fname: template inclusion denied for " . $title->getPrefixedDBkey() );
} else {
$articleContent = $this->fetchTemplate( $title );
if ( $articleContent !== false ) {