Plone, gruppi e sharing.

Inauguriamo questa parte del blog, dedicata ad un CMS e prima di passare al "fulcro" del post, vorrei fare una piccola presentazione sul CMS che andremo a vedere.
Prima di tutto un CMS è un Content Management System, cioè un contenitore di contenuti, un sistema di gestione contenuti, il quale consente facilmente e velocemente di inserire, modificare e cancellare i contenuti che compongono il sito web  come  pagine, immagini, file etc. , e soprattutto dove l'utente finale, il committente, potrà in totale autonomia aggiungere, modificare ed eliminare i propri contenuti.

Il CMS che andremo a visionare in questo tutorial è Plone.
Plone è un CMS nato nel 1999 e pubblicato nel 2001. Attualmente siamo alla versione 5.1.0
È scritto in Python e gira sull'application server Zope.
Plone è senz'altro un CMS conosciuto per via della sua sicurezza e della solida struttura che permette Zope. Come per ogni CMS in circolazione ha sia note positive che negative.
Non credo ci sia un CMS supremo, ma credo che per ogni progetto ci sia la necessità di usare lo strumento adeguato.
Plone si avvale inoltre dell'uso dei workflow, cioè dei flussi di lavoro i quali consentono ad un amministratore del sito di creare un sistema apposito per controllare la pubblicazione e la gestione dei contenuti che coinvolge utenti diversi con ruoli prestabiliti.
L'esempio più semplice per spiegare i workflow è una redazione giornalistica o un ente pubblico, dove ad esempio vi sarà un utente con il ruolo di reporters che creerà un articolo, ma non potrà direttamente pubblicarlo, ma dovrà farlo avanzare allo stato del workflow successivo. L'articolo passerà quindi alla revisione e sarà un altro utente con il ruolo di redattore a revisionarlo e a farlo passare al workflow successivo. Nell'ultima fase l'utente con il ruolo di Editore, farà il controllo finale e potrà pubblicare l'articolo.
I workflow implicano la creazione di un controllo più rigido nell'aggiunta, revisione e pubblicazione di contenuti.

 

Perchè usare Plone?
Pensiamo ad esempio ad un portale, che deve contenere un numero di aziende e che ogni azienda debba vedere i contenuti che sono in comune con tutte le aziende, quelli della propria azienda e che non debba assolutamente vedere i contenuti delle altre aziende.
Con Plone si può.

E se volessimo creare un admin per ogni azienda che possa modificare i propri contenuti e lasciare invariati i contenuti che sono in comune con tutti?
Con Plone si può.

E se volessi creare una cartella in comune con tutti, dove però all'interno devono esserci dei contenuti particolari dove alcuni sono in comune e altri invece devono essere visibili solo ad un'azienda?
Con Plone si può.

Un'altra potenzialità di Plone sono senza dubbio l'utilizzo dei gruppi e della condivisione/sharing.

In collaborazione con Infoporto abbiamo sviluppato un portale per Contship Italia, dove l'esigenza del committente era quella di avere un unico portale con all'interno 10 compagnie, dove ogni utente potesse loggarsi (tramite un sistema esterno di SSO) e vedere solo la parte relativa alla propria azienda.
Per ogni azienda sono stati poi creati degli admin appositi, che potessero andare a modificare il contenuto relativo alla propria azienda.


Per fare quanto descritto sopra, c'è stata la necessità di creare i gruppi, senza associare ad essi nessun ruolo.
Cliccando sulla voce "Utenti e gruppi" dal pannello di controllo di Plone, è possibile creare i singoli gruppi, in maniera molto semplice e veloce.
Nel progetto la cosa è andata un po' diversamente perchè il gruppo ai singoli utenti non veniva dato all'interno di Plone, ma gli utenti sono stati importati in Plone già con un gruppo impostato, quindi sono serviti dei passaggi in più.

                            Fig 1. Creazione di un nuovo gruppo "GruppoTest"

Una volta creati i gruppi possiamo procedere a creare i singoli utenti ed associarli al gruppo creato, questo passaggio può essere fatto direttamente durante la creazione dell'utente. Se l'utente è stato creato precedentemente al gruppo, non sarà un problema associarlo successivamente.

 

                            Fig 2. Creazione di un nuovo utente con la possibiltà di associarlo subito al gruppo creato "GruppoTest"

Una volta effettuata l'associazione gruppo - utente, dobbiamo decidere a chi mostrare il contenuto che abbiamo creato nel portale.

 

                            Fig 3. Assocciare ad un gruppo un utente

 

Scelta la cartella, file o la tipologia che avete creato, dovete interfacciarvi con il contenuto con la voce "Condivisione", per comodità potete usare la shortcut @@sharing in coda nell'url.
Vi si presenterà una pagina di questo genere:

                            Fig 4. Condivione /@@sharing

Da qui potete decidere cosa il gruppo potrà effettuare sulla risorsa, aggiungere, modficare, revisionare e vedere.
Se per ogni gruppo che può solamente vedere, è associato un admin, il quale deve avere il permesso di aggiungere ed editare, bisognerà cercare il singolo utente e dargli il permesso stabilito.
Essenzialmente chi fa il lavoro "sporco" non sono tanto i gruppi, che ci aiutano tantissimo a non dover abilitare ogni singola utente alla vista o meno, ma è la condivisione, perchè è attraverso quella che i contenuti vengono "scremati".
La condivisione può essere usata sia per i singoli contenuti che per l'intera cartella e può essere ereditata dalla cartella madre. Quindi se quella cartella non può essere vista da quel gruppo di persone, anche i suoi contenuti non potranno essere visti, in questo caso ci sarà bisogno di disabilitare questa opzione "Eredita i permessi dai livelli superiori" e andando a disabilitare questa voce, ogni contenuto potrà avere la condivisione che più vi torna comoda.

 

Questo tutorial è per il momento finito, se avete avuto esperienze in merito o volete semplicemente un confronto, scriveteci!

Stay tuned.

Emily Manfredi - Netfarm S.r.l.

 

 

 

 

 

Pubblicato in Tutorial da Emily
Tags: plone, tutorial, permessi, workflow, sharing, condivisione, python, cms, zope, opersource