Plone 4: отправлять электронную почту при обновлении информации о пользователе

Я пытаюсь добавить прослушиватель событий в пользовательский продукт, чтобы я мог отправлять электронное письмо при сохранении страницы @@personal-information.

Я попытался добавить в свой configure.zcml следующее:

<subscriber
    for="Products.PluggableAuthService.interfaces.events.IPropertiesUpdatedEvent"
    handler=".handlers.userupdate"
    />

И затем в моем handlers.py:

def userupdate(event):
""" Handler for User Properties Updated """
... code to send email...

Я не получаю никаких ошибок, но ничего не происходит. Разве это не подходящее событие для прослушивания? Есть ли лучший способ сделать это?


person Stephen Moran    schedule 18.12.2011    source источник


Ответы (1)


Это правильный подход, и ваш код мне нравится. Попробуйте установить оператор pdb в свой метод userupdate и запустить свой экземпляр на переднем плане ("bin/instance fg"), чтобы увидеть, вызывается ли код при редактировании личной информации пользователя:

def userupdate(event):
    import pdb; pdb.set_trace()

Если метод вообще не вызывается, это может быть ошибкой. Наверное этот:

https://bugs.launchpad.net/zope-pas/+bug/795086

Попробуйте использовать более новую версию Products.PluggableAuthService, в которой эта ошибка исправлена.

http://pypi.python.org/pypi/Products.PluggableAuthService

Согласно примечаниям к выпуску, использование Products.PluggableAuthService 1.7.6 должно помочь.

person tisto    schedule 18.12.2011