Tor Bjornrud wrote:
Are there ways to do one of the following?
* Namespace the default set of documents and whitelist them, while
creating a different namespace for the private pages? * Manage a blacklist of pages? Or blacklist a namespace?
There is not currently a blacklist feature, but it should be easy to hack in. In Title.php there is this function:
function userCanRead() { global $wgUser; global $wgWhitelistRead; if( 0 != $wgUser->getID() ) return true; if( !is_array( $wgWhitelistRead ) ) return true; $name = $this->getPrefixedText(); if( in_array( $name, $wgWhitelistRead ) ) return true; # Compatibility with old settings if( $this->getNamespace() == NS_MAIN ) { if( in_array( ":" . $name, $wgWhitelistRead ) ) return true; } return false; }
A blacklist will be the opposite of the whitelist:
if( in_array( $name, $wgBlacklistRead ) ) return false;
Or a namespace blacklist might look like:
if( in_array( $this->getNamespace(), $wgBlacklistNs ) ) { return false; }
However be careful; MediaWiki is designed for open access, and there may be numerous ways around the poorly tested, little-used access control features. I would not recommend relying on them for any purpose; if you have information you wish to keep private, the best way is to keep it completely separate from a public wiki database and use HTTP authentication to control access at the highest level.
-- brion vibber (brion @ pobox.com)