Extension:CheckuserPages

From MediaWiki.org

Jump to: navigation, search
If you need per-page or partial page access restrictions, you are advised to install an appropriate content management package. MediaWiki was not written to provide per-page access restrictions, and almost all hacks or patches promising to add them will likely have flaws somewhere, which could lead to exposure of confidential data. We are not responsible for anything being leaked, leading to loss of funds or one's job.
For further details, see Security issues with authorization extensions


               

Manual on MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
CheckuserPages

Release status: unknown

Crosswiki block mockup.png
Implementation  User rights
Description Add 'checkuser only read' protect namespaces for private information
Author(s)  Edward (FerrerTalk)
Last Version  1.0
MediaWiki  1.13
License GNU GPLv2
Download Code

check usage (experimental)

Based on Lockdown & CheckUser Extensions.

CheckuserPages extension create protect namespace (and talk), prevent inclusion of pages from that namespace; and add 'clerk' usergroup with permissions from read and edit added namespaces. Move and delete pages on protect namespaces bureaucrat only by default.

Contents

[edit] Namespace settings

  • NS_CHECKUSER: 'checkuser' and 'clerk' group only;
  • NS_CHECKUSER_TALK: 'autoconfirmed', 'sysop', 'checkuser' and 'clerk' group only;

[edit] Usage

[edit] Download

Place the files in $IP/extensions/CheckuserPages/. Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php.

[edit] Installation

To install this extension, add the following to LocalSettings.php:

 # add configuration parameters here
 # add user rights here
 require_once("$IP/extensions/CheckuserPages/CheckuserPages.php");
 
 # default settings CheckuserPages extension
 $wgAddGroups['bureaucrat'] = array( 'clerk' );
 $wgRemoveGroups['bureaucrat'] = array( 'clerk' );

[edit] Code

[edit] CheckuserPages.php

 <?php
 
 /**
  * CheckuserPages extension
  * @author Edward (Ferrer); <ferrer126@gmail.com>
  * @copyright © 2008 Edward
  * @licence GNU General Public Licence 2.0 or later
 */
 
 # CheckuserPages Extension Credits
 $wgExtensionCredits['specialpage'][] = array(
         'name' => 'CheckuserPages',
         'version' => 1.0,
         'author' => 'Edward',
         'url' => 'http://www.mediawiki.org/wiki/Extension:CheckuserPages',
         'description' => 'Add checkuser-only read protect namespaces for private information.',
 );
 
 # Add 'clerk' group
 $wgAvailableRights[] = 'clerk';
 # GroupPermissions settings
 $wgGroupPermissions['clerk']['clerk'] = true;
 # $wgGroupPermissions['bureaucrat']['clerk'] = true;
 $wgGroupPermissions['checkuser']['clerk'] = true;
 
 # Add CheckUser: and CU_talk: namespace
 define("NS_CHECKUSER", 100);
 define("NS_CHECKUSER_TALK", 101);
 $wgExtraNamespaces[NS_CHECKUSER] = "CheckUser";
 $wgExtraNamespaces[NS_CHECKUSER_TALK] = "CU_talk";
 
 # Lockdown settings
 ## CheckUser: namespace settings
 $wgNamespacePermissionLockdown[NS_CHECKUSER]['read'] = array( 'checkuser', 'clerk' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER]['edit'] = array( 'checkuser', 'clerk' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER]['move'] = array( 'checkuser', 'bureaucrat' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER]['delete'] = array( 'checkuser', 'bureaucrat' );
 
 ## CU_talk: namespace settings
 $wgNamespacePermissionLockdown[NS_CHECKUSER_TALK]['read'] = array( 'autoconfirmed', 'clerk', 'checkuser', 'sysop' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER_TALK]['edit'] = array( 'autoconfirmed', 'clerk', 'checkuser', 'sysop' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER_TALK]['move'] = array( 'checkuser', 'bureaucrat' );
 $wgNamespacePermissionLockdown[NS_CHECKUSER_TALK]['delete'] = array( 'checkuser', 'bureaucrat' );
 
 # Prevent inclusion of pages from that namespace
 $wgNonincludableNamespaces[] = NS_CHECKUSER;
 $wgNonincludableNamespaces[] = NS_CHECKUSER_TALK;
 
 # Internationalizing
 $wgExtensionMessagesFiles['CheckuserPages'] = dirname( __FILE__ ) . '/CheckuserPages.i18n.php';
 wfLoadExtensionMessages( 'CheckuserPages' );

[edit] CheckuserPages.i18n.php

 <?php
 
 /**
  * Internationalisation file for cu_pages extension.
 */
 
 <?php
 $messages = array();
 $messages['en'] = array(
         'group-clerk' => 'Clerks',
         'group-clerk-member' => 'clerk',
         'grouppage-clerk' => 'Project:Clerks',
 );
 $messages['ru'] = array(
         'group-clerk' => 'Клерки',
         'group-clerk-member' => 'клерк',
         'grouppage-clerk' => 'Project:Клерки',
 );

[edit] See also