Lockdown

From mw.mh370.wiki
Jump to navigation Jump to search


A Guide to Using MediaWiki in a Hosted Environment

An instructional website by the developer of mh370wiki.net - a MediaWiki site about Malaysia Airlines Flight MH370.


Lockdown is an Extension which provides a way to restrict access to specific namespaces. The extension can also be used to restrict access to Special Pages.

Lockdown is not included with MediaWiki so must be downloaded an installed manually.

Lockdown can be used in addition to default settings defined by $wgGroupPermissions and $wgNamespaceProtection.

Using Lockdown to Restrict Access to Namespaces

Three custom namespaces have been added to this site - NS_Draft, NS_Snippets, and NS_Tooltips.

NS_Draft and NS_Tooltips would normally remain private; anonymous users should not be able to read content, but a user who logs in with an account can view or read the content.

However, since this is an instructional site, access to the Tooltips namespace will be allowed for anonymous users '*'.

$wgNamespacePermissionLockdown[NS_DRAFT]['read'] = [ 'user' ];
$wgNamespacePermissionLockdown[NS_TOOLTIPS]['read'] = [ '*' ];

Since this is an instructional site, access to the Snippets will be also allowed for anonymous users.

$wgNamespacePermissionLockdown[NS_SNIPPETS]['read'] = [ '*' ];

Note: If the Talk namespaces were enabled then additional configuration would be required:-

$wgNamespacePermissionLockdown[NS_DRAFT_TALK]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_SNIPPETS_TALK]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_TOOLTIPS_TALK]['read'] = array('user');

Lockdown on mh370wiki.net

The settings below are from mh370wiki.net Version 4 and shows permissions and restrictions for both common and custom namespaces:-

## ALLOW common Namespaces
$wgNamespacePermissionLockdown[NS_MAIN]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_CATEGORY]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_CATEGORY_TALK]['read'] = array('user');


# ALLOW custom namespaces
$wgNamespacePermissionLockdown[NS_COMMUNICATIONS]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_COMMUNICATIONS_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_FI_2015]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_FI_2015_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_SIR_2018]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_SIR_2018_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_PASSENGER]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_PASSENGER_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_MH370NEWS]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_MH370NEWS_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_MH17]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_MH17_TALK]['read'] = array('user');	 


## LOCKDOWN common Namespaces

$wgNamespacePermissionLockdown[NS_USER]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_USER_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_PROJECT]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_PROJECT_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_FILE]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_FILE_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_MEDIAWIKI]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_MEDIAWIKI_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_TEMPLATE]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_TEMPLATE_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_HELP]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_HELP_TALK]['read'] = array('user');


#LOCKDOWN custom namespaces
$wgNamespacePermissionLockdown[NS_TOOLTIPS]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_TOOLTIPS_TALK]['read'] = array('user');

$wgNamespacePermissionLockdown[NS_DRAFT]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_DRAFT_TALK]['read'] = array('user');

In Version 5 and above, I have grouped all namespace settings for each namespace. One example follows:-

# NS_Main
# Enable subpages in the main namespace
$wgNamespacesWithSubpages[NS_MAIN] = true;
#$wgNamespacesWithSubpages[NS_MAIN_TALK] = true;
$wgNamespacePermissionLockdown[NS_MAIN]['read'] = array('*');
$wgNamespacePermissionLockdown[NS_TALK]['read'] = array('user');
$wgNamespaceRobotPolicies[NS_MAIN] =  'index, follow';
$wgNamespaceRobotPolicies[NS_TALK] =  'noindex, nofollow';             
$wgNamespacesToBeSearchedDefault[NS_MAIN] = true;
$wgNamespacesToBeSearchedDefault[NS_MAIN] = true;
$wgNamespacesToBeSearchedDefault[NS_TALK] = false;

Links

Extension:Lockdown
https://www.mediawiki.org/wiki/Extension:Lockdown