| AiutoSuListeControlloAccesso |
UserPreferences |
| Ames Community Network | FrontPage | RecentChanges | TitleIndex | WordIndex | SiteNavigation | HelpContents | moin.sf.net |
#acl QualcheUtente:read,write All:read
Questo consentirà a QualcheUtente di leggere e scrivere quella pagina, mentre potrà essere solo letta da chiunque altro (a meno ché non si configurato in maniera particolare il sito).
#acl [+-]Utente[,QualcheGruppo,...]:[permesso[,permesso,...]] [[+-]AltroUtente:...] [[+-]Known:...] [[+-]All:...] [Default]
Where:
A causa dell'algoritmo della prima regola, devi mantenere un certo ordine nello specificare le ACL: prima i singoli utenti, poi i gruppi speciali, quindi i gruppo generici, Known e infine All.
Ad esempio, la seguente ACL specifica che QualcheUtente può leggere e scrivere la pagina coperta da quelle regole, mentre i membri di QualcheGruppo (compreso QualcheUtente, se vi fa parte) può amministrarne i permessi; tutti gli altri possono leggerla.
#acl QualcheUtente:read,write QualcheGruppo:read,write,admin All:read
Per rendere il sistema più flessibile, si possono utilizzare dei modificatori: i prefissi '+' e '-'. Quando vengono usati, quella particolare regola verrà soddisfatta solo quando l'utente richiede quei particolari permessi. Ad esempio, la ACL precedente si potrebbe scrivere anche così:
#acl -QualcheUtente:admin QualcheGruppo:read,write,admin All:read
O anche:
#acl +All:read -QualcheUtente:admin QualcheGruppo:read,write,admin
La seconda e la terza forma vengono raramente usate per specificare i permessi di una pagina wiki, ma possono essere utili nella configurazione globale del sito.
acl_rights_default = "GruppoFidato:read,write,delete All:read" acl_rights_before = "GruppoAdmin:admin,read,write,delete +GruppoFidato:admin"
Ora diciamo di voler dare a QualcheUtente il permesso di scrittura, ma di voler anche mantenere il comportamento specificato per All e per GruppoFidato. Questo è facilmente ottenibile usando la speciale regola Default:
#acl QualcheUtente:read,write Default
Questo inserirà le regole impostate in acl_rights_default esattamente dove appare la parola Default. In altri termini, la regola qui sopra con la configurazione indicata è equivalente a questa regola:
#acl QualcheUtente:read,write GruppoFidato:read,write,delete All:read
Sebbene raggiungano lo stesso risultato, sfruttando i valori di default si ha il vantaggio che eventuali modifiche a quelle impostazioni verranno applicate automaticamente.
| Voce | Default | Descrizione |
| acl_enabled | 0 | true indica che il supporto per le ACL è abilitato. |
| acl_rights_before | "" | applicate prima delle regole della pagina o di quelle di default |
| acl_rights_after | "" | applicate dopo delle regole della pagina o di quelle di default |
| acl_rights_default | "Known:read,write,delete All:read,write" | usate esclusivamente quando nessun'altra regola ACL è specificata dalla pagina in questione |
| acl_rights_valid | ["read", "write", "delete", "admin"] | Questi sono i permessi accettati (riconosciuti) e dove eventualmente estenderli, se necessario. |
Cosa significa tutto questo?
Solo gli amici di QualcheUtente possono leggere e modificare la pagina:
#acl QualcheUtente:read,write QualcheUtente/GruppoAmici:read,write
QualcheUtente/GruppoAmici a sua volta è una pagina della quale ogni elemento della lista al primo livello rappresenta il nome di un utente del sito wiki da considerare appartenente a quel gruppo:
#acl QualcheUtente:read,write,admin,delete * PaoloVerdi * MarioBianchi * RodolfoRossi
La pagina GruppoAdmin (che soddisfi l'espressione regolare config.page_group_regex) può definire un gruppo con quel nome e a sua volta può essere protetta con le regole ACL:
#acl GruppoAdmin:admin,read,write All:read * QualcheUtente * AltroUtente * Questa voce viene ignorata Qualsiasi testo esterno alla lista di primo livello viene ignorato.
Puoi configurare quali nomi di pagina debbano essere considerati delle definizioni di gruppo (ad esempio per wiki in lingue diverse dall'inglese):
page_group_regex = '^Gruppo.*' # questo è adatto all'italiano
Questo è il motivo per cui le ACL non dovrebbero essere utilizzare (di default è così) oppure, qualora si decida di farlo, il file moin_config.py dovrebbe contenere qualche cosa del tipo:
acl_rights_before = 'NomeResponsabileWiki:read,write,admin,delete +GruppoAdmin:admin ImbrattatatoreSiti:'
L'impostazione di default per acl_rights_default dovrebbe essere adatta:
acl_default = 'Known:read,write,delete All:read,write'
Un buon consiglio è di avere solo pochi e ben fidati amministratori del wiki raggruppati nel GruppoAdmin (che devono avere una buona conoscenza di come funziona un wiki perché altrimenti potrebbe senza volerlo comprometterne il senso stesso, che sta nell'essere aperto, non chiuso a chiave!).
Se usi il GruppoAdmin devi perciò creare una pagina GruppoAdmin elencandovi le persone che avranno i permessi di amministrazione.
Specificando l'ImbrattatatoreSiti come mostrato sopra in pratica lo si chiude fuori: non potrà né leggere né tantomeno scrivere nulla da quel account. Questo ha senso solo quando si tratta di una misura temporanea, altrimenti tanto varrebbe eliminare il suo account. Naturalmente questo ImbrattatatoreSiti può accedere anche come anonimo, così questa non è una protezione molto efficace (e qui entra in ballo la sicurezza leggera).
acl_rights_default = 'All:read' acl_rights_before = 'WebMaster,AltroWebMaster:read,write,admin,delete'
In questo modo tutti potranno leggere, ma solo i due autori indicati potranno fare tutto. Mentre stanno lavorando a una pagina, potranno inserirvi
#acl All:cosicché nessun altro potrà vedere la pagina incompleta. Una volta terminato il lavoro, dovranno ricordarsi di rimuovere la regola ACL dimodoché vengano applicate quelle indicate da acl_rights_default.
Per far sì che alcune pagine consentano ai visitatori anonimi di inserire un loro commento (ad esempio la pagina CommentiDeiVisitatori), inserisci questa regola:
#acl All:read,write
acl_rights_default = 'Known:admin,read,write,delete All:read,write' acl_rights_before = 'WikiAdmin,IlGrangeCapo:read,write,admin,delete'
Così tutti possono leggere, modificare e cambiare i diritti di accesso, WikiAdmin e IlGrandeCapo hanno assicurato il permesso di fare qualunque cosa; gli utenti registrati ottengono questo diritto da acl_rights_default (così facendo ottengono questo beneficio solo nel caso in cui la pagina non specifichi sue particolari ACL).
Conseguenze:
acl_rights_default = "GruppoFidati:admin,read,write,delete All:read" acl_rights_before = "GruppoAdmin:admin,read,write,delete +GruppoFidati:admin"
Questo significa che:
#acl QualcheUtente:read,write All:read '''Contenuto a sola lettura''' ... ''' Commenti dei visitatori ''' [[Include(QualchePagina/Commenti)]]
E in QualchePagina/Commenti mettere qualche cosa del tipo:
#acl All:read,write Aggiungi qui sotto le tue considerazioni su QualchePagina.