Manuale:Permessi utente

This page is a translated version of the page Manual:User rights and the translation is 98% complete.

I permessi utente sono abilitazioni (come la possibilità di modificare pagine o bloccare utenti) che possono essere assegnati a diversi gruppi di utenti. MediaWiki viene fornito con un insieme predefinito di diritti e gruppi di utenti, ma questi possono essere personalizzati. Questa pagina spiega i permessi e i gruppi predefiniti e come personalizzarli.

Per informazioni su come aggiungere e rimuovere singoli utenti wiki dai gruppi, vedere Aiuto: Permessi utente e gruppi e Manuale: Configurare gruppi di utenti in MediaWiki .

Cambiare i permessi utente

Un'installazione standard di MediaWiki assegna alcuni gruppi predefiniti (vedi in basso). Puoi cambiare i permessi predefiniti modificando l'array $wgGroupPermissions in LocalSettings.php con la sintassi.

$wgGroupPermissions['group']['right'] = true /* o false */;
In un'installazione predefinita $wgGroupPermissions sarà impostato in includes/DefaultSettings.php, ma non è presente in LocalSettings.php. Avrai bisogno di aggiungerlo in quel file.

Se un membro è in più gruppi, ottiene tutti i permessi da ciascuno dei gruppi in cui si trova. Tutti gli utenti, inclusi gli utenti anonimi, sono nel gruppo '*'; tutti gli utenti registrati sono nel gruppo 'user'. In aggiunta ai gruppi predefiniti, puoi creare nuovi gruppi arbitrariamente usando il medesimo array.

Esempi

Questo esempio disabiliterà la visualizzazione di ogni pagina non elencata in $wgWhitelistRead , quindi la ri-abilita solo per gli utenti registrati:

$wgGroupPermissions['*']['read'] = false;
# La riga seguente non è al momento necessaria, siccome è in quelle predefinite. Impostare '*' a false non disabilita i permessi per i gruppi che hanno quel permesso separatamente impostato a true!
$wgGroupPermissions['user']['read'] = true;

Questo esempio disabiliterà la modifica di tutte le pagine, poi le ri-abiliterà solo per gli utenti con un indirizzo e-mail confermato.

# Disabilita per tutti.
$wgGroupPermissions['*']['edit'] = false;
# Disabilita anche per gli utenti: di default 'user' può modificare, anche se '*' non può farlo.
$wgGroupPermissions['user']['edit'] = false;
# Fa sì che gli utenti con un indirizzo e-mail confermato siano nel gruppo.
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# Nasconde il gruppo dalla lista dell'utente.
$wgImplicitGroups[] = 'emailconfirmed';
# Infine, imposta a true per il gruppo desiderato.
$wgGroupPermissions['emailconfirmed']['edit'] = true;

Creare un nuovo gruppo e assegnargli permessi

Puoi creare nuovi gruppi utente definendo i permessi al corrispettivo nome del gruppo in $wgGroupPermissions[ 'nome-gruppo' ] dove <nome-gruppo> è il nome attuale del gruppo.

Insieme all'aggiunta di permessi, dovresti creare queste tre pagine wiki popolandone i contenuti:

  • MediaWiki:Group-<group-name> (contenuto: Nome del gruppo)
  • MediaWiki:Group-<group-name>-member (contenuto: Nome di un membro del gruppo)
  • MediaWiki:Grouppage-<group-name> (contenuto: Nome della pagina del gruppo)

In maniera predefinita, i burocrati possono aggiungere o rimuovere utenti da qualsiasi gruppo. In ogni caso, se stai usando Manual:$wgAddGroups e Manual:$wgRemoveGroups , potresti avere invece bisogno di personalizzare questi ultimi.

Esempi

Questo esempio creerà un gruppo "projectmember" arbitrario che può bloccare gli utenti e cancellare pagine, e i cui edit saranno invisibili di default nei registri delle modifiche recenti.

$wgGroupPermissions['projectmember']['bot'] = true;
$wgGroupPermissions['projectmember']['block'] = true;
$wgGroupPermissions['projectmember']['delete'] = true;
il nome del gruppo non può contenere spazi, quindi usa 'gruppo-a-caso' o 'gruppo_a_caso' al posto di 'gruppo a caso'. Inoltre è raccomandato l'utilizzo di soli caratteri minuscolo per creare un gruppo.

In questo esempio, vorrai forse creare anche queste pagine:

  • MediaWiki:Group-projectmember (contenuto: Membri del progetto)
  • MediaWiki:Group-projectmember-member (contenuto: Membro del progetto)
  • MediaWiki:Grouppage-projectmember (contenuto: Project:Membri del progetto)

Questo assicurerà che il gruppo sarà descritto come "Membri del progetto" dappertutto sull'interfaccia, e un membro sarà descritto come "Membri del progetto", e il nome del gruppo collegherà alla pagina Project:Membri del progetto.

Questo esempio disabilita l'accesso in scrittura (la modifica e creazione di pagine) in maniera predefinita, crea un gruppo chiamato "Scrivere", e gli garantisce l'accesso in scrittura. Gli utenti possono essere aggiunti manualmente a questo gruppo tramite Special:UserRights:

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['writer']['edit'] = true;
$wgGroupPermissions['writer']['createpage'] = true;

In questo esempio, forse vorrai anche creare queste pagine:

  • MediaWiki:Group-writer (contenuto: Scrittori)
  • MediaWiki:Group-writer-member (contenuto: Scrittore)
  • MediaWiki:Grouppage-writer (contenuto: Progetto:Scrivere)

Rimuovere gruppo predefiniti

MediaWiki è fornita con un certo numero di gruppi predefiniti. La maggior parte di questi gruppi può essere rimosso eliminando la relativa chiave dell'array, in $wgGroupPermissions[ '<nome-gruppo>' ]. Per dettagli vedi in basso.

Esempio

Questo esempio eliminerà completamente i burocrati. È necessario assicurarsi che tutte e sei queste variabili siano eliminate per ogni gruppo di cui desideri sia rimosso dall'elenco in Special:ListGroupRights; in ogni caso, rimuovendo soltanto $wgGroupPermissions sarà sufficiente per rimuoverlo da Special:UserRights. Questo codice dovrebbe essere posto dopo qualsiasi riga require_once che aggiunga estensioni come Extension:Renameuser contenenti codice che dà ai burocrati dei permessi in maniera predefinita.

unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );

In alcune estensioni (Flow, Semantic MediaWiki, etc.), i permessi sono aggiunti durante la registrazione dell'estensione o in una funzione di registrazione. In questo caso, potrebbe essere necessario usare la funzione di registrazione nel LocalSettings.php per rimuovere alcuni gruppi predefiniti:

$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
    unset( $wgGroupPermissions['oversight'] );
    unset( $wgGroupPermissions['flow-bot'] );
};

Note sul gruppo chiamato "user"

Con il meccanismo soprastante, puoi rimuovere il gruppo amministratori, burocrati e bot, che - se utilizzati - possono essere assegnati attraverso il normale sistema dei permessi utente. In ogni caso, è al momento impossibile rimuovere il gruppo user. Questo gruppo non è assegnato attraverso il solito sistema di permessi. Al contrario, ogni utente autenticato è automaticamente membro di quel gruppo. Questo è scalpito nel codice di MediaWiki ed al momento non può essere cambiato facilmente.

Lista di permessi

I seguenti permessi utente sono disponibili nell'ultima versione di MediaWiki. Se stai utilizzando una versione più vecchia, vai sul tuo wiki in "Speciale:Versione" e guarda se la tua versione è compresa in quelle nella colonna "versioni".

Permessi Descrizione Gruppi utente che hanno questo permesso in maniera predefinita Versioni
Leggere
read Legge pagine - quando impostato a false, ignora per pagine specifiche con $wgWhitelistRead
  Attenzione: Setting the user right "read" (allow viewing pages) to false will only protect wiki (article, talk, ...) pages, but uploaded files (images, files, docs... in the $wgUploadPath subdirectories) will always remain readable via direct access by default.
Use the information from Manual:Image authorization and img_auth.php pages when you have the need to restrict image views and file download access to only logged-in users.
*, user 1.5+
Modificare
applychangetags Applica delle etichette alle proprie modifiche - requires the edit right user 1.25+
autocreateaccount Accede automaticamente con un'utenza esterna - una versione più limitata di createaccount 1.27+
createaccount Crea nuove utenze - register / registration *, sysop 1.5+
createpage Crea pagine (escluse le pagine di discussione) - richiede il permesso edit *, user 1.6+
createtalk Crea pagine di discussione - richiede il permesso edit *, user 1.6+
delete-redirect Cancella redirect con una sola versione in cronologia (nota che non è necessario che il gruppo abbia già il permesso delete) 1.36+
edit Modifica pagine *, user 1.5+
editsemiprotected Modifica pagine protette con "Allow only autoconfirmed users" - senza protezione a cascata - requires the edit right autoconfirmed, bot, sysop 1.22+
editprotected Modifica pagine protette con "Allow only administrators" - senza protezione a cascata - requires the edit right sysop 1.13+
minoredit Segna le modifiche come minori - requires the edit right user 1.6+
move Sposta le pagine - richiede il permesso edit user, sysop 1.5+
move-categorypages Sposta le categorie - richiede il permesso move user, sysop 1.25+
move-rootuserpages Sposta le pagine principali degli utenti - richiede il permesso move user, sysop 1.14+
move-subpages Sposta le pagine insieme alle relative sottopagine - richiede il permesso move user, sysop 1.13+
movefile Sposta i file - richiede il permesso move e $wgAllowImageMoving impostato a true user, sysop 1.14+
reupload Sovrascrive un file esistente - richiede il permesso upload user, sysop 1.6+
reupload-own Sovrascrive un file esistente caricato dallo stesso utente - richiede il permesso upload (nota che non è necessario che il gruppo abbia già il permesso reupload) 1.11+
reupload-shared Sovrascrive localmente file presenti nell'archivio condiviso - (se una è impostata) con file locali (richiede il permesso upload) user, sysop 1.6+
sendemail Invia email ad altri utenti user 1.16+
upload Carica file - richiede che edit a destra e $wgEnableUploads siano true user, sysop 1.5+
upload_by_url Carica un file da un indirizzo URL - richiede il permesso upload (Prima di 1.20, era concesso ai sysops) 1.8+
Gestione
bigdelete Cancella pagine con cronologie lunghe (come determinato da $wgDeleteRevisionsLimit ) - richiede il permesso delete sysop 1.12+
block Blocca le modifiche da parte di altri utenti - Le opzioni di blocco includono l'impossibilità di modificare e registrare nuovi account e il blocco automatico di altri utenti sullo stesso indirizzo IP sysop 1.5+
blockemail Impedisce a un utente di inviare email - permette di evitare l'uso dell'interfaccia Speciale:Emailuser quando si blocca - richiede il permesso di blocco. sysop 1.11+
browsearchive Ricerca nelle pagine cancellate - tramite Special:Undelete - richiede il permesso deletedhistory sysop 1.13+
changetags Aggiunge e rimuove specifiche etichette su singole versioni o voci di registro - attualmente non utilizzato per estensioni user 1.25+
delete Cancella pagine 1.5–1.11: permette la cancellazione e il ripristino di pagine.
1.12+: consente la cancellazione di pagine. Per il ripristino, c'è ora il permesso 'undelete', vedere sotto
sysop 1.5+
deletedhistory Visualizza le versioni della cronologia cancellate senza il testo associato sysop 1.6+
deletedtext Visualizza testo cancellato e modifiche fra versioni cancellate sysop
deletelogentry Cancella e ripristina voci di registro specifiche -

permette di cancellare/ripristinare le informazioni (testo dell'azione, riepilogo, utente che ha effettuato l'azione) di voci di registro specifiche - richiede il permesso "deleterevision"

suppress 1.20+
deleterevision Nasconde versioni specifiche delle pagine -

permette di cancellare/ripristinare le informazioni (testo della revisione, riepilogo della modifica, utente che ha effettuato la modifica) di revisioni specifiche Diviso in deleterevision e deletelogentry in 1.20

suppress 1.6+
editcontentmodel Modifica il modello di contenuto di una pagina - richiede il permesso edit user 1.23.7+
editinterface Modifica l'interfaccia utente - contiene messaggi dell'interfaccia. Per la modifica di CSS/JSON/JS a livello di sito, ora ci sono permessi separati, vedi sotto. - richiede il permesso edit sysop, interface-admin 1.5+
editmyoptions Modifica le proprie preferenze * 1.22+
editmyprivateinfo Modifica i propri dati personali (ad esempio: indirizzo email, nome vero) e richiedi e-mail di reimpostazione della password - nasconde anche la voce "Cambia password", ma non altri modi per cambiare la password. * 1.22+
editmyusercss Modifica il file CSS del proprio utente - prima della 1.31 era assegnato a tutti (cioè "*") (si noti che questo non è necessario se il gruppo ha già il permesso editusercss) - richiede il permesso edit user 1.22+
editmyuserjs Modifica il file JavaScript del proprio utente - prima della 1.31 era assegnato a tutti (cioè "*") (si noti che questo non è necessario se il gruppo ha già il permesso di edituserjs) - richiede il permesso edit user 1.22+
editmyuserjsredirect Modifica i propri file JavaScript che sono reindirizzamenti (si noti che questo non è necessario se il gruppo ha già il permesso di edituserjs) - richiede il permesso edit 1.34+
editmyuserjson Modifica il file JSON del proprio utente (si noti che questo non è necessario se il gruppo ha già il permesso di edituserjson) - richiede il permesso edit user 1.31+
editmywatchlist Modifica i propri osservati speciali (da notare che alcune azioni potranno ancora aggiungere pagine anche senza questo diritto) * 1.22+
editsitecss Modifica CSS del sito - richiede il permesso editinterface interface-admin 1.32+
editsitejs Modifica JavaScript del sito - richiede il permesso editinterface interface-admin 1.32+
editsitejson Modifica JSON del sito - richiede il permesso editinterface sysop, interface-admin 1.32+
editusercss Modifica i file CSS di altri utenti - richiede il permesso edit interface-admin 1.16+
edituserjs Modifica i file JS di altri utenti - richiede il permesso edit interface-admin 1.16+
edituserjson Modifica i file JSON di altri utenti - richiede il permesso edit sysop, interface-admin 1.31+
hideuser Blocca un nome utente, nascondendolo al pubblico - Solo gli utenti con 1000 modifiche o meno possono essere eliminati per impostazione predefinita - richiede il permesso block

Utilizzare $wgHideUserContribLimit per disattivare.

suppress 1.10+
markbotedits Segna le modifiche soggette a rollback come effettuate da bot - vedere Manual:Administrators#Rollback - richiede il permesso rollback sysop 1.12+
mergehistory Fonde la cronologia delle pagine - richiede il permesso edit sysop 1.12+
pagelang Modifica la lingua della pagina - $wgPageLanguageUseDB deve essere true 1.24+
patrol Segna le modifiche degli altri utenti come verificate - $wgUseRCPatrol deve essere true sysop 1.5+
patrolmarks Usa la funzione di verifica delle ultime modifiche 1.16+
protect Cambia le impostazioni di protezione e modifica pagine protette ricorsivamente - richiede il permesso edit sysop 1.5+
rollback Annulla rapidamente le modifiche dell'ultimo utente che ha modificato una particolare pagina - richiede il permesso edit sysop 1.5+
suppressionlog Visualizza i registri privati suppress 1.6+
suppressrevision Vede, nasconde e ripristina versioni specifiche delle pagine a qualsiasi utente - Prima della 1.13 questo permesso era chiamato hiderevision - richiede il permesso deleterevision suppress 1.6+
unblockself Sblocca sé stesso - Senza di essa, un amministratore che ha la capacità di bloccare non può sbloccarsi se bloccato da un altro amministratore sysop 1.17+
undelete Recupera una pagina - richiede il permesso deletedhistory sysop 1.12+
userrights Modifica tutti i diritti dell'utente - consente l'assegnazione o la rimozione di tutti (*) i gruppi a qualunque utente.

(*)Con $wgAddGroups e $wgRemoveGroups è possibile impostare l'aggiunta /rimozione di determinati gruppi anziché di tutti

bureaucrat 1.5+
userrights-interwiki Modifica i diritti degli utenti di altre wiki 1.12+
viewmyprivateinfo Visualizza i propri dati personali (ad esempio: indirizzo email, nome vero) * 1.22+
viewmywatchlist Visualizza i propri osservati speciali * 1.22+
viewsuppressed Vede versioni nascoste a qualsiasi utente - cioè un'alternativa più ristretta a "suppressrevision" (si noti che questo non è necessario se il gruppo ha già il permesso di suppressrevision) suppress 1.24+
Amministrazione
autopatrol Segna automaticamente le proprie modifiche come verificate - $wgUseRCPatrol deve essere true bot, sysop 1.9+
deletechangetags Cancella le etichette dal database - attualmente non utilizzato per estensioni sysop 1.28+
import Importa pagine da altri wiki - "transwiki" - richiede il permesso edit sysop 1.5+
importupload Importa pagine da un upload di file - Questo permesso era chiamato 'importraw' nella versione 1.5 e precedenti - richiede il permesso edit sysop 1.5+
managechangetags Crea e attiva/disattiva le etichette - attualmente non utilizzato da estensioni sysop 1.25+
siteadmin Blocca e sblocca il database - che blocca tutte le interazioni con il sito web, tranne la visualizzazione. (non disponibile per impostazione predefinita) 1.5+
unwatchedpages Visualizza una lista di pagine non osservate - elenca le pagine che nessun utente ha negli osservati speciali sysop 1.6+
Tecnica
apihighlimits Usa limiti più alti per le interrogazioni API bot, sysop 1.12+
autoconfirmed Non soggetto al limite di azioni per IP - utilizzato per il gruppo "autoconfermato", si veda l'altra tabella qui sotto per maggiori informazioni autoconfirmed, bot, sysop 1.6+
bot Da trattare come processo automatico - può essere visualizzato opzionalmente bot 1.5+
ipblock-exempt Ignora i blocchi degli IP, i blocchi automatici e i blocchi di range di IP sysop 1.9+
nominornewtalk Fa sì che le modifiche minori alle pagine di discussione non facciano comparire l'avviso di nuovo messaggio - richiede il permesso minoredit bot 1.9+
noratelimit Non soggetto al limite di azioni - non influenzati da rate limits (prima dell'introduzione di questo diritto, la variabile di configurazione $wgRateLimitsExcludedGroups era usata a questo scopo) sysop, bureaucrat 1.13+
override-export-depth Esporta le pagine includendo le pagine collegate fino ad una profondità di 5
Con questo permesso, è possibile definire la profondità delle pagine collegate a Special:Export. Altrimenti, verrà utilizzato il valore di $wgExportMaxLinkDepth , che è 0 per impostazione predefinita.
?
purge Pulisce la cache del sito per una pagina - parametro URL "&action=purge" user 1.10+
suppressredirect Non crea un redirect automatico quando si sposta una pagina - richiede il permesso move bot, sysop 1.12+
writeapi Usa l'API in scrittura - richiede il permesso edit *, user, bot 1.13+
Sebbene queste autorizzazioni controllino tutte cose distinte, a volte per eseguire determinate azioni sono necessarie più autorizzazioni. Ad esempio, permettere alle persone di modificare le pagine ma non di leggerle non ha senso, poiché per modificare una pagina bisogna prima essere in grado di leggerla (supponendo che nessuna pagina sia inserita nell'elenco dei permessi). Consentire il caricamento ma non la modifica non ha senso, poiché per caricare un'immagine è necessario creare implicitamente una pagina di descrizione dell'immagine, ecc.

Elenco dei gruppi

I seguenti gruppi sono disponibili nell'ultima versione di MediaWiki. Se si utilizza una versione anteriore, alcuni di questi gruppi possono non essere attivati.

Gruppo Descrizione Permessi predefiniti Versioni
* tutti gli utenti (inclusi gli anonimi), createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi 1.5+
user account registrati. applychangetags, changetags, createpage, createtalk, edit, editcontentmodel, editmyusercss, editmyuserjs, editmyuserjson, minoredit, move, move-categorypages, move-rootuserpages, move-subpages, movefile, purge, read, reupload, reupload-shared, sendemail, upload, writeapi
autoconfirmed account registrati con anzianità pari a $wgAutoConfirmAge e con un numero di modifiche pari almeno a $wgAutoConfirmCount . autoconfirmed, editsemiprotected 1.6+
bot account con il permesso bot (destinato agli script automatici). autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect, writeapi 1.5+
sysop utenti che per impostazione predefinita possono cancellare e ripristinare le pagine, bloccare e sbloccare gli utenti, ecc. apihighlimits, autoconfirmed, autopatrol, bigdelete, block, blockemail, browsearchive, createaccount, delete, deletedhistory, deletedtext, editinterface, editprotected, editsemiprotected, editsitejson, edituserjson, import, importupload, ipblock-exempt, managechangetags, markbotedits, mergehistory, move, move-categorypages, move-rootuserpages, move-subpages, movefile, noratelimit, patrol, protect, reupload, reupload-shared, rollback, suppressredirect, unblockself, undelete, unwatchedpages, upload 1.5+
interface-admin utenti che possono modificare i CSS/JS del sito. editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson 1.32+
bureaucrat utenti che per impostazione predefinita possono modificare i permessi di altri utenti. noratelimit, userrights 1.5+
suppress deletelogentry, deleterevision, hideuser, suppressionlog, suppressrevision, viewsuppressed

A partire da MW 1.12, è possibile creare gruppi personalizzati in cui gli utenti vengono promossi automaticamente (come nel caso di autoconfirmed e emailconfirmed) utilizzando $wgAutopromote . È anche possibile creare qualsiasi gruppo personalizzato, semplicemente assegnandogli dei diritti.

Permessi predefiniti

I permessi predefiniti sono indicati in DefaultSettings.php .

  • Default values in HEAD version:

https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/DefaultSettings.php

Aggiungere nuovi permessi

Seguono informazioni riservate ai programmatori.

Se si aggiunge un nuovo permesso nel core, per esempio per controllare una nuova pagina speciale, è richiesto di aggiungerlo all'elenco dei diritti disponibili in $Utente, $coreRights ([esempio https://gerrit.wikimedia.org/r/c/mediawiki/core/+/559622/9/includes/Permissions/PermissionManager.php]). Se si opera in una estensione , è necessario utilizzare $wgAvailableRights .

Probabilmente si vuole anche assegnarlo a qualche gruppo di utenti, modificando $wgGroupPermissions descritto sopra.

Se si vuole che questo permesso sia accessibile alle applicazioni esterne tramite OAuth o bot password, è necessario aggiungerlo a una abilitazione modificando $wgGrantPermissions .

// create projectmember-powers right
$wgAvailableRights[] = 'projectmember-powers';

// add projectmember-powers to the projectmember-group
$wgGroupPermissions['projectmember']['projectmember-powers'] = true;

// add projectmember-powers to the 'basic' grant so we can use our projectmember powers over an API request
$wgGrantPermissions['basic']['projectmember-powers'] = true;

È inoltre necessario aggiungere right-[name] e action-[name] interface messages to /languages/i18n/en.json (con documentazione in qqq.json). I messaggi di permesso-* possono essere visualizzati in Special:ListGroupRights e i messaggi di azione-* sono usati in una frase come "Non hai il permesso di ...".

Vedere anche