2013-08-08 13 views
6

Próbuję wykonać akcję po aktualizacji właściwości użytkownika na @@ dane osobowe, ale zdarzenie nie jest uruchamiane. Na configure.zcml Mam umieścić następujące:Aktualizacja elementu członkowskiego plone: ​​PropertiesUpdatedEvent nie został uruchomiony

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

Ja już próbował użyć ipdb aby sprawdzić, czy propertiesUpdated z subscribers.py jest wykonywany, ale tak nie jest.

Sprawdziłem raport o błędzie https://bugs.launchpad.net/zope-pas/+bug/795086, który mówi, że ten błąd został naprawiony, ale nadal nie działa.

Używam PluggableAuthService 1.10.0.

Czy istnieje lepszy sposób rozwiązania tego problemu?

+2

Błąd https://bugs.launchpad.net/zope-pas/+bug/795086 dotyczył problemów związanych z samym wydarzeniem, a nie faktem, że nie został uruchomiony. IMHO to nowy błąd. – amleczko

+0

Może być powód: https://dev.plone.org/ticket/13661? –

+0

Nie widzę [dev.plone.org/ticket/13661](https://dev.plone.org/ticket/13661) związanych z tym problemem – jtmolon

Odpowiedz

1

Zdarzenie PropertiesUpdated (implementujące IPropertiesUpdatedEvent) nie jest uruchamiane w kodzie Plone (patrz Plan 4.3).

Jedyne zdarzenie, które zostanie wywołane po zmianie informacji o koncie, to plone.app.controlpanel.events.ConfigurationChangedEvent. Możesz zasubskrybować to wydarzenie i filtrować (ponieważ to zdarzenie jest ogólnym wydarzeniem wystrzeliwanym w wielu miejscach).

Coś, co muszę wiedzieć, jakie zdarzenia są uruchamiane po wykonaniu akcji: Dodałem instrukcję drukowania do pliku zope.event.notify (print event, event.__dict__) i rozpocznę w trybie pierwszego planu.

Możesz poprosić o ulepszenie na https://dev.plone.org lub lepiej go zaimplementować. Pakiet plone.app.users jest dobrym miejscem do rozpoczęcia.