Ruoli e condivisione in Plone 4

Come configurazione i ruoli e i permessi in Plone con GenericSetup e come aggiungere nuovi ruoli nel tab condivisione (Sharing) per condividere facilmente i permessi sui contenuti.

Ogni tanto è bello scoprire che esistono degli strumenti di configurazione avanzati che mi permettono di scrivere meno codice e consentono inoltre di uniformare il modo in cui vengono create cose in Plone.

Ecco che oggi scopro (o ri-scopro) un nuovo file di configurazione per GenericSetup in Plone 4:

Per creare nuovi ruoli ed assegnare permessi in Plone è sufficiente usare il file rolemap.xml e scrivere qualcosa di questo tipo:

<?xml version="1.0"?>
<rolemap>
  <roles>
    <role name="My Role"/>
  </roles>
  <permissions>
    <permission name="View" acquire="True">
      <role name="My Role"/>
      ...
</permission> ...

Fino a Plone 3 per consentire agli utenti di assegnare i ruoli dalla tab 'condivisione' doveva essere registrata un utility in questo modo:

<!-- in configure.zcml-->
<utility name="My Role"
   factory="my.package.sharingMyRole" />

e la factory relativa:

# sharing.py
from zope.interface import implements
from plone.app.workflow.interfaces import ISharingPageRole
from Products.CMFPlone import PloneMessageFactory as _

class MyRole(object):
implements(ISharingPageRole)
title = _(u"My Role")
required_permission = 'Manage portal content'

Con Plone 4 cambia tutto e diventa più semplice. Attraverso il file sharing.xml posso ridurre quando detto sopra in direttiva in xml; per esempio:

<?xml version="1.0"?>
<sharing xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="my.package">
<role
id="MyRole"
title="My Role"
permission="Manage portal"
i18n:attributes="title" />
</sharing>

Unica pecca è che la traduzione non funziona al di fuori del dominio i18n Plone

Ulteriori informazioni

Share this on

Share |

On same topics

Commenti

comments powered by Disqus