Jump to content

Manuel:$wgNamespaceProtection

From mediawiki.org
This page is a translated version of the page Manual:$wgNamespaceProtection and the translation is 100% complete.
Accès: $wgNamespaceProtection
Quels espaces de noms peuvent être édités et par qui ?
Introduit dans la version :1.10.0 (r19110)
Retiré dans la version :Encore utilisé
Valeurs autorisées :(tableau de chaînes)
Valeur par défaut :$wgNamespaceProtection = []; (1.14+)
$wgNamespaceProtection[NS_MEDIAWIKI] = array( 'editinterface' ); (1.10 - 1.13)

Détails

Ce paramètre permet à un wiki de demander des permissions spéciales pour éditer certains espaces de noms. Par défaut, la seule restriction est que l'espace de noms MediaWiki ne peut être édité que par des utilisateurs avec la permission 'editinterface ' (par défaut: sysops).

Les clés de ce tableau sont les numéros des espaces de noms, et les valeurs sont de simples tableaux des noms de permission. Si vous listez plus d'une permission pour un espace de noms, un utilisateur devra les avoir toutes pour éditer les pages dans cet espace de noms.

Depuis la version 1.14, l'espace de noms MediaWiki: est protégé de façon inconditionnelle des utilisateurs avec le droit 'editinterface' (comme dans les versions précédentes). Cela est fixé dans Setup.php et ne peut pas être modifié dans $LocalSettings car sinon, il serait trop facile de l'initialiser incorrectement et de laisser le wiki non sécurisé. Si vous voulez permettre à d'autres groupes que les sysops d'éditer l'espace de noms MediaWiki:, alors accordez le droit 'editinterface' à ces groupes.

Il n'est pas possible de restreindre l'accès en lecture à un espace de noms donné avec $wgNamespaceProtection. (Voir Extension:Lockdown )

Exemple

Restreindre l'édition de l'espace de noms principal

$wgNamespaceProtection[NS_MAIN] = ['edit-main'];

Cela restreint l'édition dans l'espace de noms principal aux personnes dans un groupe qui a la permission edit-main.

Mettre en place des espaces de noms personnalisés avec accès en écriture restreint

define('NS_OFFICIAL', 100);
define('NS_OFFICIAL_TALK', 101);

$wgExtraNamespaces = [
    NS_OFFICIAL => 'Official',
    NS_OFFICIAL_TALK => 'Official_talk'
];

$wgNamespaceProtection[NS_OFFICIAL]      = ['official-edit'];
$wgNamespaceProtection[NS_OFFICIAL_TALK] = ['official-talk-edit'];

$wgGroupPermissions['managers']['official-edit'] = true; // seuls les managers peuvent éditer les pages dans l'espace de noms Official
$wgGroupPermissions['employees']['official-talk-edit'] = true; // les employés peuvent éditer les pages dans l'espace de noms Official_talk
$wgGroupPermissions['managers']['official-talk-edit'] = true; // de même que les managers

Désactiver les pages de discussion

Parce que « everyone » (tous) n'est pas un droit d'accès au système, chacun littéralement se voit refusé l'accès (même les sysops). Notez bien que vous devrez encore supprimer l'onglet avec d'autres méthodes (voir : Manuel:FAQ#Comment ajouter/supprimer des onglets dans mon wiki ? )

# Désactiver tous les espaces de noms de discussion (TALK) du coeur
$wgNamespaceProtection[NS_TALK] = ['everyone'];
$wgNamespaceProtection[NS_USER_TALK] = ['everyone'];
$wgNamespaceProtection[NS_PROJECT_TALK] = ['everyone'];
$wgNamespaceProtection[NS_FILE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_MEDIAWIKI_TALK] = ['everyone'];
$wgNamespaceProtection[NS_TEMPLATE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_HELP_TALK] = ['everyone'];
$wgNamespaceProtection[NS_CATEGORY_TALK] = ['everyone'];

Voir aussi