Manuale:Permessi utente
I diritti utente sono permessi (come la possibilità di modificare pagine o bloccare utenti) che possono essere assegnati a diversi gruppi di utenti. MediaWiki ships with a default set of user rights and user groups, but these can be customized. This page explains the default rights and groups and how to customize them.
For information about how to add and remove individual wiki users from groups, see Aiuto: Diritti utente e gruppi utente and Manual:Setting user groups in MediaWiki .
Cambiare i permessi utente
Una installazione predefinita 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 */;
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 ogni gruppi a cui appartiene.
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;
'gruppo-a-caso'
o 'gruppo_a_caso'
al posto di 'gruppo a caso'
. Moreover it is recommended to only use lowercase letters to create a group.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 "Pembri 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 in maniera predefinita di 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
|
*, user | 1.5+ |
Modificare | |||
applychangetags | Applica delle etichette alle proprie modifiche | 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+ |
edit | Modifica pagine | *, user | 1.5+ |
editsemiprotected | Modifica pagine protette con "Allow only autoconfirmed users" - senza protezione a cascata | autoconfirmed, bot, sysop | 1.22+ |
editprotected | Modifica pagine protette con "Allow only administrators" - senza protezione a cascata | sysop | 1.13+ |
minoredit | Segna le modifiche come minori | 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 (Prior to 1.20 it was given to sysops) | — | 1.8+ |
Gestione | |||
bigdelete | Cancella pagine con cronologie lunghe (as determined by $wgDeleteRevisionsLimit) - requires the delete right | sysop | 1.12+ |
block | Blocca le modifiche da parte di altri utenti - Block options include preventing editing and registering new accounts, and autoblocking other users on the same IP address | sysop | 1.5+ |
blockemail | Impedisce a un utente di inviare email - allows preventing use of the Special:Emailuser interface when blocking - requires the block right | sysop | 1.11+ |
browsearchive | Ricerca nelle pagine cancellate - through Special:Undelete - requires the deletedhistory right | sysop | 1.13+ |
changetags | Aggiunge e rimuove specifiche etichette su singole versioni o voci di registro - currently unused by extensions | user | 1.25+ |
delete | Cancella pagine 1.5–1.11: allows the deletion or undeletion of pages. 1.12+: allows the deletion of pages. For undeletions, there is now the 'undelete' right, see below |
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 - allows deleting/undeleting information (action text, summary, user who made the action) of specific log entries - requires the deleterevision right | suppress | 1.20+ |
deleterevision | Nasconde versioni specifiche delle pagine - allows deleting/undeleting information (revision text, edit summary, user who made the edit) of specific revisions Split into deleterevision and deletelogentry in 1.20 | suppress | 1.6+ |
editcontentmodel | Modifica il modello di contenuto di una pagina - requires the edit right | user | 1.23.7+ |
editinterface | Modifica l'interfaccia utente - contains interface messages. For editing sitewide CSS/JSON/JS, there are now segregate rights, see below. - requires the edit right | sysop, interface-admin | 1.5+ |
editmyoptions | Modifica le proprie preferenze | * | 1.22+ |
editmyprivateinfo | Modifica i propri dati personali (ad esempio: indirizzo email, nome vero) | * | 1.22+ |
editmyusercss | Modifica il file CSS del proprio utente - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the editusercss right) - requires the edit right | user | 1.22+ |
editmyuserjs | Modifica il file JavaScript del proprio utente - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the edituserjs right) - requires the edit right | user | 1.22+ |
editmyuserjson | Modifica il file JSON del proprio utente (note that this is not needed if the group already has the edituserjson right) - requires the edit right | 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 - requires the editinterface right | interface-admin | 1.32+ |
editsitejs | Modifica JavaScript del sito - requires the editinterface right | interface-admin | 1.32+ |
editsitejson | Modifica JSON del sito - requires the editinterface right | sysop, interface-admin | 1.32+ |
editusercss | Modifica i file CSS di altri utenti - requires the edit right | interface-admin | 1.16+ |
edituserjs | Modifica i file JS di altri utenti - requires the edit right | interface-admin | 1.16+ |
edituserjson | Modifica i file JSON di altri utenti - requires the edit right | sysop, interface-admin | 1.31+ |
hideuser | Blocca un nome utente, nascondendolo al pubblico - Only users with 1000 edits or less can be suppressed by default.
Use |
suppress | 1.10+ |
markbotedits | Segna le modifiche soggette a rollback come effettuate da bot - see Manual:Administrators#Rollback - requires the rollback right | sysop | 1.12+ |
mergehistory | Fonde la cronologia delle pagine - requires the edit right | sysop | 1.12+ |
pagelang | Modifica la lingua della pagina - $wgPageLanguageUseDB must be true | — | 1.24+ |
patrol | Segna le modifiche degli altri utenti come verificate - $wgUseRCPatrol must be true | sysop | 1.5+ |
patrolmarks | Usa la funzione di verifica delle ultime modifiche | — | 1.16+ |
protect | Cambia i livelli di protezione e modifica pagine protette ricorsivamente - requires the edit right | sysop | 1.5+ |
rollback | Annulla rapidamente le modifiche dell'ultimo utente che ha modificato una particolare pagina - requires the edit right | sysop | 1.5+ |
suppressionlog | Visualizza i registri privati | suppress | 1.6+ |
suppressrevision | Vede, nasconde e ripristina versioni specifiche delle pagine a qualsiasi utente - Prior to 1.13 this right was named hiderevision - requires the deleterevision right | suppress | 1.6+ |
unblockself | Sblocca se stesso - Without it, an administrator that has the capability to block cannot unblock themselves if blocked by another administrator | sysop | 1.17+ |
undelete | Recupera una pagina - requires the deletedhistory right | sysop | 1.12+ |
userrights | Modifica tutti i diritti dell'utente - allows the assignment or removal of all(*) groups to any user. (*)With $wgAddGroups and $wgRemoveGroups you can set the possibility to add/remove certain groups instead of all |
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 - i.e. a more narrow alternative to "suppressrevision" (note that this is not needed if the group already has the suppressrevision right) | suppress | 1.24+ |
Administration | |||
autopatrol | Segna automaticamente le proprie modifiche come verificate - $wgUseRCPatrol must be true | bot, sysop | 1.9+ |
deletechangetags | Cancella le etichette dal database - currently unused by extensions | sysop | 1.28+ |
import | Importa pagine da altri wiki - "transwiki" - requires the edit right | sysop | 1.5+ |
importupload | Importa pagine da un upload di file - This right was called 'importraw' in and before version 1.5 - requires the edit right | sysop | 1.5+ |
managechangetags | Crea e attiva/disattiva le etichette - currently unused by extensions | sysop | 1.25+ |
siteadmin | Blocca e sblocca il database - which blocks all interactions with the web site except viewing. (not available by default) | — | 1.5+ |
unwatchedpages | Visualizza una lista di pagine non osservate - lists pages that no user has watchlisted | sysop | 1.6+ |
Technical | |||
apihighlimits | Usa limiti più alti per le interrogazioni API | bot, sysop | 1.12+ |
autoconfirmed | Non soggetto al limite di azioni per IP - used for the 'autoconfirmed' group, see the other table below for more information | autoconfirmed, bot, sysop | 1.6+ |
bot | Da trattare come processo automatico - can optionally be viewed | 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 - requires the minoredit right | bot | 1.9+ |
noratelimit | Non soggetto al limite di azioni - not affected by rate limits (prior to the introduction of this right, the configuration variable $wgRateLimitsExcludedGroups was used for this purpose) | sysop, bureaucrat | 1.13+ |
override-export-depth | Esporta le pagine includendo le pagine collegate fino ad una profondità di 5 With this right, you can define the depth of linked pages at Special:Export. Otherwise, the value of $wgExportMaxLinkDepth , which is 0 by default, will be used. |
— | ? |
purge | Pulisce la cache del sito per una pagina - URL parameter "&action=purge "
|
user | 1.10+ |
suppressredirect | Non crea un redirect automatico quando si sposta una pagina - requires the move right | bot, sysop | 1.12+ |
writeapi | Usa l'API in scrittura - requires the edit right | *, user, bot | 1.13+ |
List of groups
The following groups are available in the latest version of MediaWiki. If you are using an older version then some of these may not be implemented.
Group | Description | Default rights | Versions |
---|---|---|---|
* | all users (including anonymous). | createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi | 1.5+ |
user | registered accounts. | 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 | registered accounts at least as old as $wgAutoConfirmAge and having at least as many edits as $wgAutoConfirmCount . | autoconfirmed, editsemiprotected | 1.6+ |
bot | accounts with the bot right (intended for automated scripts). | autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect, writeapi | 1.5+ |
sysop | users who by default can delete and restore pages, block and unblock users, et cetera. | 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, proxyunbannable, reupload, reupload-shared, rollback, suppressredirect, unblockself, undelete, unwatchedpages, upload | 1.5+ |
interface-admin | users who can edit sitewide CSS/JS. | editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson | 1.32+ |
bureaucrat | users who by default can change other users' rights. | noratelimit, userrights | 1.5+ |
From MW 1.12, you can create your own groups into which users are automatically promoted (as with autoconfirmed and emailconfirmed) using $wgAutopromote . You can even create any custom group by just assigning rights to them.
Default rights
The default rights are defined in DefaultSettings.php .
- Default values in HEAD version:
https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/DefaultSettings.php
- The default values in the latest stable MediaWiki release, version 1.35, are available here:
https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_35/includes/DefaultSettings.php
- Additional rights: you should be able to list all the permissions available on your wiki by running
User::getAllRights()
.
Adding new rights
Information for coders only follows.
If you're adding a new right in core, for instance to control a new special page, you are required to add it to the list of available rights in User.php , $mCoreRights
(example).
If you're doing so in an extension , you instead need to use $wgAvailableRights .
You probably also want to assign it to some user group by editing $wgGroupPermissions described above.
If you want this right to be accessible to external applications by OAuth or by bot passwords, then you will need to add it to a grant by editing $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;
You also need to add right-[name]
and action-[name]
interface messages to /languages/i18n/en.json (with documentation in qqq.json).
The right-* messages can be seen on Special:ListGroupRights and the action-* messages are used in a sentence like "You do not have permission to ...".
See also
- Special:ListGroupRights – links to this help page and might contain not yet documented rights
- Aiuto: Diritti utente e gruppi utente – help page describing use of the Special:Userrights interface (for bureaucrats)
- Manual:Setting user groups in MediaWiki – information about managing and the assignment of user groups.
- Manual:$wgNamespaceProtection
- Manual:$wgAutopromote
- Manual:$wgAddGroups , Manual:$wgRemoveGroups
- Manual:Preventing access – examples
- Manual:Establishing a hierarchy of bureaucrats
- Category:User rights extensions – Many extensions relating to user rights