2013-08-08 15 views
6

Sto tentando di eseguire un'azione dopo l'aggiornamento delle proprietà membro su @@ personale-informazione, ma l'evento non viene generato. Su configure.zcml ho messo il seguente:Aggiornamento dati membro plone: ​​ProprietàUpdatedEvent non attivato

<subscriber 
    for="Products.PluggableAuthService.interfaces.events.IPropertiesUpdatedEvent" 
    handler=".subscribers.propertiesUpdated" 
/> 

ho già provato ad utilizzare IPDB per verificare se è in esecuzione propertiesUpdated di subscribers.py, ma non è.

Ho controllato il bug report https://bugs.launchpad.net/zope-pas/+bug/795086, che dice che questo bug è stato corretto, ma non funziona ancora.

Sto usando PluggableAuthService 1.10.0.

C'è un modo migliore per risolvere questo problema?

+2

Il bug https://bugs.launchpad.net/zope-pas/+bug/795086 riguardava problemi nell'evento stesso, non il fatto che non sia stato attivato. IMHO è un nuovo bug. – amleczko

+0

Potrebbe essere il motivo: https://dev.plone.org/ticket/13661? –

+0

Non vedo [dev.plone.org/ticket/13661](https://dev.plone.org/ticket/13661) in relazione con questo problema – jtmolon

risposta

1

L'evento PropertiesUpdated (che implementa IPropertiesUpdatedEvent) non viene generato nel codice Plone (visto in Plone 4.3).

L'unico evento che viene generato dopo aver modificato le informazioni sull'account è plone.app.controlpanel.events.ConfigurationChangedEvent. Potresti voler iscriverti a quell'evento e filtrare (dato che questo evento è un evento generico sparato in molti posti).

Qualcosa che faccio per sapere quali eventi vengono generati dopo un'azione è solo: aggiungo una dichiarazione di stampa in zope.event.notify (print event, event.__dict__) e avvio in modalità primo piano.

Si potrebbe desiderare di chiedere un miglioramento su https://dev.plone.org o meglio implementarlo. Il pacchetto plone.app.users è un buon punto di partenza.