Plone 4: отправьте электронное письмо при обновлении информации о пользователе - PullRequest
2 голосов
/ 18 декабря 2011

Я пытаюсь добавить прослушиватель событий в пользовательский продукт, чтобы отправить электронное письмо при сохранении страницы @@ 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...

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

1 Ответ

1 голос
/ 18 декабря 2011

Это правильный подход, и ваш код выглядит хорошо для меня.Попробуйте установить 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 должен справиться с задачей.

...