Jump to content

Manual:$wgNamespaceProtection

From mediawiki.org
This page is a translated version of the page Manual:$wgNamespaceProtection and the translation is 100% complete.
Access: $wgNamespaceProtection
Quali namespace possono essere editati e da chi?
Introdotto nella versione:1.10.0 (r19110)
Rimosso nella versione:Still in use
Valori concessi:(array di array)
Valore predefinito:$wgNamespaceProtection = []; (1.14+)
$wgNamespaceProtection[NS_MEDIAWIKI] = array( 'editinterface' ); (1.10 - 1.13)

Dettagli

Questa impostazione permette a un wiki di richiedere permessi specifici per editare in alcuni namespace. Per impostazione predefinita, la sola restrizione è che il namespace MediaWiki può essere editato solo da utenti con il permesso 'editinterface ' (predefinito: i sysop).

Le chiavi dell'array sono i numeri dei namespace, mentre i valori sono dei semplici array di nomi di permessi. Se elenchi più di un permesso per un dato namespace, un utente li deve possedere tutti per poter editare pagine di quel namespace.

A partire dalla versione 1.14, il namespace MediaWiki: è incondizionatamente riservato a utenti con i diritti di 'editinterface' (medesimo delle versioni precedenti). Ciò è definito in Setup.php e non può essere modificato in LocalSettings.php altrimenti sarebbe troppo facile impostarlo in modo non corretto e lasciare il wiki insicuro. Se vuoi consentire a utenti di altri gruppi, oltre ai sysop, di editare il namespace MediaWiki:, allora assegna il diritto 'editinterface' a quei gruppi utente.

Non si può limitare l'accesso in lettura ad un certo namespace con $wgNamespaceProtection. (Vedi Extension:Lockdown )

Esempio

Limitare l'editing nel namespace principale

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

Questo limita l'editing nel namespace principale solo a utenti di un gruppo che ha il permesso 'edit-main'.

Impostare namespace personalizzati con diritti di scrittura limitati

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; // solo i manager possono editare pagine nel namespace Official
$wgGroupPermissions['employees']['official-talk-edit'] = true; // gli impiegati (employee) possono editare pagine nel namespace Official_talk (pagine di discussione del namespace Official)
$wgGroupPermissions['managers']['official-talk-edit'] = true; // e anche i manager possono farlo

Disattivare le pagine di discussione

Non essendo "everyone" un permesso definito, letteralmente chiunque (everyone) si trova vietato l'accesso (compresi i sysop). Nota che comunque devi sempre ribuovere la tab con altri metodi (vedi: Manual:FAQ#How do I add/remove tabs throughout my wiki? )

# Disattiva tutti i TALK predefiniti
$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'];

Vedi anche