Utente:Sarkiaponius/Plone
Utenti, ruoli e permessi
[modifica | modifica wikitesto]La gestione di utenti, ruoli e permessi in Plone è molto articolata e flessibile, ma è anche resa molto complessa dal fatto che essa si svolge sia a livello di Plone stesso, sia a livello di Zope. Questo porta facilmente a confondere concetti simili, ma sottilmente differenti nei due ambienti. Ad aggravare la cosa si aggiunge il fatto che Plone sta comunque sopra Zope, e quindi quel che si fa a livello ZMI si ripercuote inevitabilmente a livello Plone. Si tratta dunque di avere sempre ben chiaro a quale dei due livelli si deve operare, e spesso sono necessarie operazioni diverse ad entrambi i livelli per realizzare determinati obiettivi.
Scenari di collaborazione
[modifica | modifica wikitesto]Uno degli scopi di Plone è ovviamente la collaborazione nella redazione di contenuti. I ruoli predefiniti sono però piuttosto generici, e non sempre si adattano a situazioni poco più che elementari. Vediamo allora qualche scenario di collaborazione e possibili configurazioni per realizzare concretamente tali scenari.
Gruppo proprietario, un solo revisore
[modifica | modifica wikitesto]Immaginiamo alcune persone che devono lavorare dentro una cartella prefissata. La prima cosa che viene in mente è creare un gruppo in cui inserire queste persone e rendere tale gruppo proprietario della cartella. Questo avviene solo a livello Plone, dato che Zope non distingue i gruppi. Da "configurazione del sito / utenti e gruppi", un manager crea il gruppo con gli utenti richiesti, poi, attraverso la scheda "condivisione" della cartella in questione, rende il gruppo appena creato proprietario della cartella. Uno degli utenti del gruppo, oppure anche un utente esterno al gruppo, viene poi reso revisore della cartella, sempre da "configurazione del sito / utenti e gruppi".
Alla semplicità di questa operazione fanno riscontro alcuni problemi. Innanzitutto, tutti gli utenti del gruppo sono proprietari della cartella, per cui possono creare, modificare o eliminare contenuti, indipendentemente da chi di loro li ha creati. Questa è già di per sé una situazione poco chiara. Peggio ancora, il revisore, che può essere o meno possessore, può pubblicare i contenuti, ma qualsiasi utente del gruppo proprietario può poi revocare la pubblicazione, anche di un oggetto non da lui creato.
Per evitare che gli utenti del gruppo proprietario possano revocare la pubblicazione, si dovrebbe intervenire sui workflow dei singoli oggetti, ma questo si ripercuoterebbe sull'intero sito Plone, dove invece potrebbe essere accettabile questa situazione.
Gruppo collaboratore e un revisore, ma collaboratori con permessi di creazione
[modifica | modifica wikitesto]Una situazione migliore si può ottenere senza intervenire sui workflow, ma sulla scheda "security" della cartella a livello ZMI. I collaboratori ereditano i permessi standard dalle cartelle superiori, e questi non consentono loro di modificare una cartella di cui non sono proprietari. Se dunque si crea un gruppo come sopra, ma con ruolo di semplice collaboratore, nessuno dei suoi membri potrà modificare la cartella, e quindi neanche creare nuovi contenuti in essa.
A livello ZMI è però possibile, nella scheda "security" della cartella, specificare, per i tipo di contenuto che gli utenti del gruppo potrebbero dover creare, il relativo permesso per il ruolo "Member". Da questo momento, i membri del gruppo, essendo tutti collaboratori, possono creare nella cartella, pur non essendone proprietari, tutti i tipi di contenuto prescelti in questo modo.
Il vantaggio è che ogni utente rimane proprietario esclusivo dei contenuti che crea, a differenza della situazione precedente, in cui tutti gli utenti possedevano tutti i contenuti. Pertanto, solo l'utente che ha creato un oggetto può inviarlo a revisione, renderlo privato o renderlo visibile nuovamente (e ovviamente cancellarlo).
Se il revisore pubblica l'oggetto, solo il suo creatore/proprietario conserva il discutibile diritto alla revoca della pubblicazione, che resta invece escluso agli altri utenti.
Uno svantaggio di questa soluzione è che se qualche utente ha bisogno di creare oggetti di un tipo non incluso fra quelli per cui i "members" hanno diritto di creazione, un manager deve scendere a livello ZMI e includere il nuovo tipo di oggetto fra quelli creabili dai "members". Si tratta tuttavia di un'operazione in fondo immediata e comunque piuttosto rara.