9. Gestione della sicurezza e degli utenti
Capitolo 9: Gestire la sicurezza e gli utenti
Plone ha un potente e granulare modello di sicurezza. Tale sistema consiste in una miriade di opzioni per la sicurezza ad ogni livello tanto che ogni oggetto può avere una propria configurazione della sicurezza per un certo utente, ruolo o gruppo e così via.
Per rendere il problema trattato in questo capitolo vogliamo condividere una citazione interessante:
La sicurezza è dura. (Security is hard.)
—Jim Fulton, capo architetto di Zope
La sicurezza per Plone è così potente e sfaccettata che può essere veramente duro farne il debug e gestirla. Ma forse nessun'altra parte di un sito Plone è così importante come quello da cui si ottengono i permessi relativi alla sicurezza. Lasciare un difetto nella sicurezza del sito è probabilmente la più grande stupidaggine che si possa fare e, per questa ragione, tratteremo la sicurezza in modo esaustivo.
In questo capitolo prima tratteremo tutta la terminologia sull'utente e le interfacce chiave con cui gli utenti interagiscono. Poi tratteremo l'aggiunta e la modifica di utenti e gruppi tramite l'interfaccia Plone. Successivamente passeremo per gli strumenti chiave e le API (Application Programming Interfaces) che gestiscono gli utenti e la loro sicurezza. Poi tratteremo l'uso degli strumenti Python per generare script per intervenire sugli utenti e le loro proprietà. Infine tratteremo la sicurezza del server e l'autenticazione espansa dell'utente fornendo un dettagliato esempio su come incorporare gli utenti da un server LDAP (Lightweight Directory Access Protocol).
Amministrare gli utenti
Uno dei più comuni problemi che deve risolvere un amministratore di portale Plone è quello di comunicare con i collaboratori del sito. L'amministrazione comprende usualmente la gestione delle password e la modifica delle impostazioni per i collaboratori (member). È possibile effettuare le operazioni più semplici via web, ma, naturalmente,per effettuare modifiche massicce, il miglior amico di qualsiasi amministratore è un linguaggio di scripting come Python. Se si ha un gran numero di utenti si troverà la sezione Manipolazione degli utenti con degli script?¿, più avanti in questo capitolo, particolarmente interessante.
Utenti, ruoli e gruppi
Utenti, ruoli e gruppi sono concetti fondamentali in Plone. Prima di trattare come modificarli vediamo nei dettagli in cosa consistono.
Utenti
Chiunque stia visitando un sito Plone è riferito come utente. L'utente può essere o non essere formalmente autenticato (registrato) e l'utente non autenticato è detto utente anonimo. Gli utenti autenticati sono quelli che si sono loggati con un account esistente. Se non si ha un proprio account è solitamente possibile crearselo.
Gli utenti anonimi sono il livello più basso degli utenti perciò hanno abitualmente le maggiori restrizioni. Una volta che un utente si è registrato ottiene il ruolo conferitogli dal proprio account. Un utente è identificato con un breve identificatore (username), per esempio lallo. Per default l'installazione di Plone non crea altri utenti oltre a quello aggiunto a Zope dall'installer per dare accesso come amministratore. Il nome di questo utente è quello impostato nell'installer, usualmente è admin.
Ruoli
Un sito Plone ha una serie di ruoli; un ruolo è la categorizzazione logica degli utenti. Piuttosto che impostare i permessi individualmente per ciascun utente i permessi vengono assegnati ad ogni ruolo. Ad ogni utente possono essere assegnati da nessuno a più ruoli: per esempio un utente può essere un collaboratore e un manager. Ciascun ruolo è identificato con un nome semplice, per esempio: Collaboratore (Member).
Un sito Plone ha cinque ruoli predefiniti suddivisi in due gruppi: ruoli assegnabili e non assegnabili. I ruoli assegnabili sono quelli che si possono dare ai propri utenti in modo che quando si loggano assumano quel ruolo. I ruoli non assegnabili sono quelli che non vengono assegnati specificamente ma che vengono assunti dentro il sito Plone. Per esempio non si attribuisce il ruolo di anonimo ad un utente.
Quelli che seguono sono i ruoli non assegnabili:
- Anonimo: (Anonymous)
- Questo è un utente che non si è loggato nel sito. Può essere qualcuno che non ha un account o che semplicemente non si è ancora registrato.
- Autenticato: (Authenticated)
- Questo ruolo è riferito ad ogni utente che è loggato nel sito, indipendentemente da qualsiasi altro ruolo gli sia stato assegnato. Per definizione un utente può essere anonimo o autenticato; questi due ruoli sono mutualmente esclusivi. Siccome il ruolo di utente autenticato non è particolarmente efficente in granularità, non è raccomandato per applicazioni principali.
Quelli che seguono sono i ruoli assegnabili:
- Possessore: (Owner)
- È un ruolo speciale che viene assegnato all'utente quando crea un oggetto. Viene applicato all'utente solo per quell'oggetto, le informazioni vengono memorizzate nell'oggetto. Normalmente non si assegna esplicitamente il ruolo di possessore a qualcuno. Plone lo fa automaticamente.
- Collaboratore: (Member)
- È il ruolo di default per un utente che si è loggato in un sito. Chiunque entri nel sito usando il pulsante registrati (join) dell'interfaccia Plone assume questo ruolo.
- Revisore: (Reviewer)
- Questo è un utente con più permessi rispetto ad un collaboratore ma meno di quelli di un manager. I revisori sono utenti che possono modificare o revisionare contenuti inseriti da collaboratori; non può però modificare la configurazione del sito o alterare gli account degli utenti.
- Manager
- Un manager può fare quasi tutto ad un sito Plone e quindi questo ruolo deve essere assegnato solo a sviluppatori ed amministratori sicuri. Un manager può cancellare o modificare contenuti, eliminare utenti, alterare la configurazione del sito o anche eliminare completamente il sito.
Gruppi
I gruppi sono concettualmente diversi dai ruoli. I ruoli implicano che l'utente ha differenti permessi rispetto a chi ha un ruolo differente mentre un gruppo è una categorizzazione logica degli utenti. Per esempio il settore marketing potrebbe essere un gruppo e lo studio tecnico un altro gruppo. Ciascun utente può appartenere a zero o più gruppi. I gruppi sono opzionali, non è necessario usarli ma il Plone Team li ha considerati sufficentemente utili da integrarli.
Gli sviluppatori di siti possono utilizzare i gruppi secondo le loro necessità vuoi per un settore piuttosto che per una certa classe di utenti. Per quelli che per la prima volta usano Plone raccomandiamo di lasciare inalterati i gruppi, per default non vengono creati gruppi.
Nota
Per implementare i gruppi si usa GRUF (Group User Folder). I gruppi non fanno parte di Zope ma sono uno strumento extra aggiunto per Plone. GRUF è stato sviluppato e aggiunto da Ingeniweb.
Scheda per la condivisione
Trattando il processo di pubblicazione dei documenti, nel Capitolo 3?¿ abbiamo saltato la scheda per la condivisione perché è una funzionalità avanzata che non sempre si vuole usare. La scheda per la condivisione è una azione delle portal actions, quindi, se si desidera che non appaia, recarsi in quello strumento tramite la ZMI (Zope Management Interface) e disabilitare l'opzione visible. Però la scheda per la condivisione è decisamente utile perché consente di assegnare differenti ruoli locali a utenti e gruppi su un oggetto di Plone.
Se si ha un contenuto che è stato aggiunto ad un sito Plone e si vuole che un'altra persona lo possa modificare è necessario dare a questa più permessi su quell'oggetto. Ciò è detto dare un ruolo locale e consiste nell'espandere i diritti di un utente su un elemento. Se si scrive un (nuovo) documento in Plone se ne diventa il possessore e si hanno i relativi diritti. Se vogliamo collaborare su questo documento con un collega, prima di pubblicarlo, dobbiamo dare al collega più permessi affinché egli possa modificare quel documento. Per far questo ci si reca nella scheda per la condivisione e si danno gli ulteriori permessi al collega.
Nota
È possibile assegnare ruoli locali ad una cartella o ad un documento base. Se si assegnano ruoli locali ad una cartella tale regola viene assegnata ad ogni oggetto in quella cartella.
La scheda per la condivisione appare solamente nei posti dove si ha il diritto di modificarla; uno di questi posti è la propria cartella personale. Cliccare su cartella personale e poi su condivisione. La Figura 9-1 mostra la scheda per la condivisione. Essa ha tre funzioni principali: si può assegnare ad un utente un ruolo locale sull'oggetto, assegnare ad un intero gruppo un ruolo locale sull'oggetto e vedere chi ha già determinati ruoli.
Per trovare un utente a cui assegnare un ruolo introdurre un termine per la ricerca (per esempio Guido) che produrrà un elenco con gli utenti che corrispondono al criterio immesso. Si potrà quindi cliccare sull'utente e scegliere un ruolo dall'elenco a cascata. Per esempio, nella Figura 9-2 diamo a specchio il ruolo di manager su questa cartella.
Nell'esempio precedente abbiamo assegnato un ruolo ad un singolo utente ma questo sistema potrebbe risultare noioso se fatto per numerosi utenti ... a meno che non li assegnamo a dei gruppi. Se vogliamo che tutto il settore marketing possa modificare il nostro documento possiamo farlo in questo modo. Per accedere ai gruppi cliccare su Visualizza gruppi che apre l'elenco dei gruppi disponibili nel sito e consente di assegnare un ruolo locale ad un gruppo. Nella Figura 9-3 stiamo assegnando il ruolo di possessore al gruppo Intranet su questa cartella.
Per finire, nella Figura 9-4, possiamo vedere quali utenti e gruppi abbiano dei ruoli in questa pagina ed eventualmente rimuoverli. Una volta che si è assegnato un ruolo locale su un oggetto a qualcun altro, gli viene automaticamente concesso l'accesso alla scheda di condivisione. A quel punto nulla impedirà loro di poter rimuovere i nostri propri ruoli da quel contenuto.
Amministrazione attraverso il web
Con l'interfaccia Plone è facile modificare l'assegnazione dell'utente a determinati gruppi, le sue informazioni, aggiungere gruppi e così via. Ciò è possibile tramite il pannello di controllo di Plone semplicemente cliccando su Configurazione di Plone e poi Amministrazione di Utenti e Gruppi. Verranno mostrate due schede: Utenti e Gruppi.
Cliccare sulla scheda Utenti per accedere all'elenco degli utenti del sistema. La maschera è sufficentemente autoesplicativa: è possibile rimuovere un utente, eliminare la password (in questo caso viene inviata all'utente via mail comunque) oppure cambiare l'indirizzo e-mail tutto dalla medesima maschera, come viene mostrato in Figura 9-5..
Cliccando su un utente si può accedere alle preferenze per quell'utente, fare delle modifiche e poi salvare. Per aggiungere un nuovo utente cliccare su Aggiungi un nuovo utente. Questo apre la scheda di registrazione dell'utente di cui è possibile modificare i dati. Considerato il grande numero di utenti che può avere un sito Plone i dati sono raggruppati nella abituale maniera plonesca. Si può immettere una stringa che verrà ricercata tra tutti i gli utenti per rintracciare quelli in cui corrispondano il nome o l'indirizzo.
È possibile aggiungere, modificare e rimuovere gruppi cliccando sulla scheda Gruppi. Per aggiungere un gruppo cliccare sul pulsante Aggiungi un nuovo gruppo. Questo apre una scheda per il gruppo: l'unico campo richiesto obbligatoriamente è il Titolo, che dovrebbe essere un nome breve ma descrittivo per il gruppo; abitualmente un gruppo è direttamente correlato ad una attività aziendale o del sito.
Quando si è inserito un gruppo e si hanno alcuni utenti si possono mappare utenti e gruppi. Ancora una volta è possibile farlo tramite il pannello di controllo di Plone. È possibile sia cliccare sull'utente e dargli dei gruppi che cliccare su un gruppo e mettervi degli utenti.
Quando vanno usati i gruppi?
L'uso dei gruppi è opzionale ed è possibile anche scegliere di non usarli. Un buon uso dei gruppi, comunque, è per realizzare delle aree di lavoro (workspace). In un sito Plone standard gli utenti possono aggiungere e modificare i contenuti della propria cartella; ogni elemento della cartella appartiene quindi a chi lo ha creato. Purtroppo questo sistema non è ben scalabile; dopo tutto il punto è che si vorrebbe che alcune persone possano modificare un documento e condividerlo, naturalmente!
Qui è dove intervengono i Gruppi e le aree di lavoro. Come esiste la cartella per i collaboratori (Members n.d.t) che contiene tutte le cartelle degli utenti altrettanto esiste una cartella denominata GroupWorkspaces. Viene creata per default allorquando viene aggiunto un gruppo ed in questa cartella vi è una cartella per ciascun gruppo. Così se si aggiunge un gruppo denominato Marketing, si potrà trovare una cartella in GroupWorkspaces/Marketing. Qualsiasi utente del gruppo Marketing avrà il diritto di aggiungere, modificare e cancellare contenuti nell'area di lavoro Marketing; in altre parole ora abbiamo una cartella per quel gruppo. Questo è equivalente ad aggiungere un gruppo e poi assegnare un ruolo locale per quel gruppo su quella cartella.
Questo è solo un esempio di quanto può essere utile un gruppo; un altro è l'uso dei gruppi nel controllo di flusso. Nel capitolo precedente abbiamo trattato i workflow e com'è possibile inviare una mail a certe persone quando accade qualcosa. Se un membro del gruppo Marketing ha aggiunto un elemento, per esempio, si può inviare una mail a tutti gli appartenenti a quel gruppo piuttosto che singolarmente a ciascuno. La sezione Determinare gli altri utenti in un certo gruppo?¿ descrive come farlo.
Nel sito web di Plone, per esempio, gli utenti sono in gruppi di sviluppo ciascuno responsabile di una parte di Plone, come il team che gestisce i rilasci del software e quello dedicato alla documentazione.
Amministrazione dei gruppi
Ci sono due modi per amministrare i gruppi dal pannello di controllo di Plone. Si può sia selezionare un utente e cliccare sui gruppi per quell'utente che andare in un gruppo e cliccare sugli utenti per quel gruppo. Nello stesso modo è possibile aggiungere ed eliminare gruppi per un utente. Per aggiungere un utente ad un gruppo, comunque, recarsi nella pagina di ricerca utenti e cliccare un utente, poi cliccare la scheda associato ai gruppi che mostrerà i gruppi di quell'utente. Per esempio la Figura 9-6 mostra i gruppi per l'utente azazel.
Per aggiungere l'utente ad un gruppo, spuntare il box del gruppo e poi cliccare su aggiungi l'utente ai gruppi selezionati.
Allo stesso modo è possibile rimuovere un utente da un gruppo selezionando il box accanto al gruppo e poi cliccando su rimuovi i gruppi selezionati. Si accede ad una interfaccia simile, ma per la gestione dei gruppi, cliccando su configurazione di plone, selezionando Amministrazione utenti e gruppi e cliccando gruppi. Cliccare un gruppo e si otterrà un'elenco degli utenti appartenenti al gruppo e da lì si potrà aggiungere o rimuovere i membri.
Assegnare dei ruoli ai gruppi
Quindi abbiamo visto che gli utenti possono avere dei ruoli ma anche che i gruppi possono avere ruoli. Può sembrare un po' eccessivo ma si pensi, per esempio, ad un gruppo di supervisori che abbiano la necessità di fare qualsiasi cosa sul contenuto aggiunto da uno dei loro collaboratori. Per far questo in un sito devono avere il ruolo di revisore. Per impostare un gruppo di supervisori cliccare su Configurazione di Plone, selezionare Amministrazione utenti e gruppi, cliccare gruppi e poi aggiungi un gruppo. Dare al gruppo il nome di Supervisore e completare la scheda. Nella scheda successiva c'è un elenco dei gruppi e dei ruoli ad essi assegnati. Per assegnare il ruolo di revisore a questo gruppo spuntare il box in corrispondenza del ruolo di revisore per quel gruppo come mostrato nella Figura 9-7.
È stato semplificato il modo di assegnare il ruolo di revisore agli utenti ed ora è possibile amministrare i revisori tramite l'interfaccia Plone. Inoltre è facile conoscere programmaticamente i revisori potendo esaminare il gruppo ed ottenere l'elenco dei suoi membri.
L'idea dei gruppi con dei ruoli è in verità un leggero scostamento di paradigma rispetto allo sviluppo standard di Zope dove si è abituati al fatto che i ruoli vengono assegnati ai singoli utenti. È possibile fare ancora così anche in Plone ovviamente, ma in Plone è facile assegnare i ruoli ad un gruppo.
Nota
Per definizione, quando vengono controllati i permessi di un utente su un oggetto sono presi in considerazione alcuni fattori. Prima sono controllati i ruoli assegnati all'utente. Secondariamente vengono controllati i ruoli che l'utente ottiene dai gruppi a cui appartiene. Questo da il gruppo di permessi complessivo che l'utente può utilizzare.
Strumenti per la registrazione degli utenti
Prima che gli utenti diventino membri di un sito devono iscriversi nel sito. Gli utenti possono agevolmente iscriversi cliccando sul collegamento iscriviti nell'angolo in alto a destra del sito Plone (standard n.d.r.). L'abbiamo trattato nei dettagli all'inizio del Capitolo 3?¿ dove abbiamo visto come gli utenti possono entrare e registrarsi ad un sito. Il processo di registrazione degli utenti è già molto avanzato ma sono disponibili ulteriori opzioni. Questo processo è gestito da tre strumenti chiave: portal_registration, portal_memberdata e portal_membership. Le sezioni che seguono presentano questi tre strumenti.
Iscrizione nel portale
Lo strumento portal_registration fornisce azioni e in particolare una azione chiave di Plone: l'iscrizione. Cliccando su questo collegamento si accede alla scheda di iscrizione. Per default qualsiasi utente (anonimo incluso) che non si sia ancora loggato può cliccare questo collegamento per registrarsi.
Quando gli utenti usano il modulo di iscrizione hanno due opzioni in Plone: validare l'indirizzo e-mail o non validarlo. L'unica maniera sicura per validare un indirizzo e-mail è quella di inviare un messaggio a quell'indirizzo e controllare se si ottiene una risposta adeguata. Come opzione predefinite in Plone la validazione non è attiva; cioé quando gli utenti si registrano, per default, forniscono a Plone il loro nome, l'indirizzo ed una password. Possono quindi loggarsi ed usare normalmente il sito. È la stessa scheda che abbiamo visto nel Capitolo 3?¿. Se invece è attivata la validazione dell'indirizzo e-mail, gli utenti possono dare solo un nome, un username e un indirizzo e-mail, come mostrato in Figura 9-8: la password verrà generata automaticamente dal sistema e spedita all'utente usando l'indirizzo email specificato.
Dopo aver salvato l'indirizzo e-mail saremo riportati alla maschera di login ed il processo di registrazione potrà continuare nel modo normale.
Per abilitare la validazione degli indirizzi nell'interfaccia Plone cliccare Configurazione di Plone e selezionare Configurazione del Portale. In Politica della Password selezionare Genera la password iniziale dei collaboratori e cliccare Salva per confermare le modifiche.
Se si desidera vedere o modificare il messaggio e-mail che ricevono gli utenti è possibile modificare il page template che lo genera. Lo si trova cliccando su plone_skins, poi su plone_templates ed ancora su registered_notify_template.
Dati dei Collaboratori del Portale
Lo strumento portal_memberdata contiene i dati del collaboratore per ogni utente. L'utente Plone ha una serie di informazioni come stile, ultimo login, il tipo di editor preferito (WYSIWYG editor) e così via. Quando un utente si registra in un sito viene creato un record con dati di default nel portal_memberdata. È possibile impostare le proprietà di questo record in questo strumento: cliccare su portal_memberdata e selezionare la scheda Properties per vedere i valori di default. In Plone sono i seguenti:
- Questo è l'indirizzo e-mail.
- portal_skin
- Questa è deprecata; ignorare questa proprietà.
- listed
- Mostra questo utente nella cartella Collaboratori (Boolean). Per default questa opzione è abilitata.
- login_time
- Questa è la data del login dell'utente per questa sessione.
- last_login_time
- Questa è la data dell'ultimo login dell'utente.
- fullname
- Questo contiene il nome completo dell'utente.
- error_log_update
- È usato dalla maschera dei log degli errori, ignorare questa proprietà.
- formtooltips
- Nelle vecchie versioni di Plone c'erano delle opzioni su come devevano essere visualizzati gli aiuti. Ciò non è più rilevante e quindi si ignori questa opzione.
- visible_ids
- Questo mostra gli ID degli oggetti. Abilitandolo il primo campo della scheda di ogni contenuto è Nome che può essere cambiato per rinominare gli oggetti. Per default questa opzione è abilitata.
- wysiwyg_editor
- Questo è l'editor da usare nelle maschere di modifica dei dati.
Tramite l'interfaccia di Zope è possibile aggiungere o togliere elementi da quest'elenco. Comunque, aggiungere o togliere elementi da qui non cambia automaticamente l'aspetto dell'interfaccia che l'utente sta modificando. Nel Capitolo 3?¿ abbiamo visto che, cliccando su preferenze personali, gli utenti possono accedere e modificare molte di queste preferenze. Se si vogliono modificare queste preferenze si deve personalizzare questa scheda. I valori di questi campi sono quelli che vengono dati per default ad ogni nuovo utente quando si registra; per esempio, l'impostazione predefinita è che tutti i Collaboratori siano elencati nella Tabella dei Collaboratori, a meno che gli utenti non decidano altrimenti esplicitamente. Quindi, per esempio, se si desidera che per default nessun Collaboratore sia elencato nella ricerca, è necessario cambiare l'impostazione in questa scheda. Nella scheda portal_memberdata trovare listed tra le Properties e deselezionare quell'opzione. Poi cliccare Save Changes per confermare: i nuovi utenti non saranno più elencati.
Lo strumento portal_groupdata contiene i medesimi dati ma per i gruppi. Le proprietà di default per i gruppi sono:
- title
- Il titolo per il gruppo
- description
- Una descrizione per il gruppo
- Un indirizzo e-mail
- listed
- Se elencare il gruppo agli utenti
Questi strumenti mantengono i dati negli strumenti stessi piuttosto che nella cartella acl_users principale. Se si desidera trasportare le informazioni utente tra server Plone sarà necessario farlo anche per gli strumenti: spostare la cartella acl_users non è sufficente. È possibile farlo importando ed esportando questi strumenti; comunque, prima di importarli in un nuovo sito Plone è necessario eliminare gli strumenti esistenti altrimenti si riceverà un errore.
Portal Membership
Lo strumento portal_membership gestisce alcune altre proprietà; specificamente mappa i dati del collaboratore con i Collaboratori. L'accesso tramite la ZMI a portal_membership presenta molte opzioni. quelle che seguono sono le più importanti:
- Set members folder
- Questa è la cartella che contiene tutte le cartelle utente. Questa cartella deve esistere. L'impostazione predefinita è Member.
- Control creation of member areas
- Per default alla registrazione viene creata un'area utente. Questa creazione è opzionale comunque. Deselezionare Turn folder creation off per disabilitarla. L'impostazione predefinita è on.
Nella scheda Action si trovano tutta una serie di azioni che sono correlate all'utente che si registra, come my favorites, my preferences e così via. Tutte queste hanno la categoria user cosicché appaiano tutte nell'angolo in alto a destra.
Lo strumento portal_groups fornisce attrezzi simili a quelli in portal_membership ma per i gruppi. Ugualmente, quando viene creato un gruppo, viene creato un'area del gruppo dove ciascun componente del gruppo può aggiungere e modificare contenuti.
API utili
Lo strumento portal_membership ha uno dei più usati set di funzioni API. Spesso si vogliono trovare informazioni chiave come gli utenti attualmente loggati, se l'utente è anonimo e così via. Lo strumento portal_membership fornisce questi metodi; i seguenti sono i più importanti:
- isAnonymousUser()
- Questo ritorna true se l'utente è anonimo.
- getAuthenticatedMember()
- Questo ritorna gli utenti attualmente registrati completi delle proprietà in portal_metadata. Se nessun utente è registrato ritorna uno speciale utente nobody con nessuna mappatura per le proprietà di portal_metadata.
- listMemberIds()
- Questo ritorna l'ID di tutti gli utenti.
- listMembers()
- Questo ritorna tutti gli oggetti dell'utente.
- getMemberById(id)
- Questo ritorna tutti gli oggetti utente per un dato ID.
- getHomeFolder(id=None)
- Questo ritorna la cartella home per un dato ID . L'ID è opzionale e se non viene dato ritorna la cartella dell'utente corrente.
- getHomeUrl(id=None)
- Questo ritorna l'URL della cartella home dell'utente. L'ID è opzionale e se non viene dato ritorna l'URL della cartella dell'utente corrente.
L'utente che viene ritornato da queste funzioni viene completato con i dati provenienti da portal_memberdata in modo che le sue proprietà siano attribuite all'oggetto dell'utente. Quindi, per esempio, quello che segue è un piccolo oggetto Script (Python) per trovare l'indirizzo e mail dell'utente andrea.
##parameters=
u = context.portal_membership.getMemberById("andrea")
return u.email
Autenticazione tramite Cookie
Per default Plone usa l'autenticazione tramite cookie per i suoi utenti, il che significa che gli utenti devono avere i cookie attivati nei loro browser per potersi registrare. Questa autenticazione è fornita al sito Plone dall'oggetto cookie_authentication che contiene la funzionalità per il login degli utenti. Se veramente si vuole utilizzare l'Hypertext Transfer Protocol (HTTP) per l'autenticazione si può semplicemente rimuovere questo oggetto; ma non viene sinceramente raccomandato in quanto l'autenticazione HTTP in moltissimi siti non funziona.
Questo oggetto fornisce i seguenti elementi che si possono modificare dalla ZMI:
- Authentication cookie name
- Questo è il nome del cookie che verrà usato per conservare l'autenticazione dell'utente. Questo vien fatto mantenendo una chiave per quell'utente, che conserva i dati per il login. Il valore di default è __ac
- User name form variable
- Questo è il nome della variabile che contiene l'username nella scheda di login. Il valore di default è __ac_name.
- User password form variable
- Questo è il nome della variabile che contiene la password nella scheda di login. Il valore di default è __ac_password.
- User name persistence form variable
- Questo è il nome della variabile che contiene la chiave di persistenza. Il valore di default è __ac_persistent.
- Login page ID
- Quando un utente desidera registrarsi, questa è la pagina che gli viene inviata per effettuare la registrazione. Il valore di default è require_login.
- Logout page ID
- Se un utente sta per fare il logout gli può essere inviata una pagina con un bel messaggio. Il valore di default è logged_out.
- Failed authorization page ID
- Quando fallisce l'autenticazione questa è la pagina che viene mostrata. Per default questo valore è blank perché Plone usa un sistema diverso.
- Use cookie paths to limit scope
- Questo imposta che il cookie sia locale alla cartella corrente e a tutte le cartelle sotto questa. Lasciandolo a blank significa che indipendentemente dalla pagina dove ci si autentica lo si fa per l'intero sito.
Per cambiare il cookie che dev'essere usato piuttosto che quello predefinito semplicemente cambiare il valore in questa scheda e cliccare Save. Comunque si lasci mettere in guardia rispetto a questo, se si modifica il nome del cookie, tutti i cookie esistenti nei computer degli utenti saranno ignorati e quindi questi dovranno registrarsi nuovamente. Se si desidera una pagina differente per il login s
Andy McKay: The Definitive Guide to Plone. Apress 2004
It was last updated by lallo on 2005-04-09 07:08 from the cvs source using
svn export http://docit.bice.dyndns.org/Plone/PloneBook2/it LibroPlone.







