在更新@@个人信息的成员属性后,我试图执行一个操作,但事件没有被触发。在config.zcml上,我放置了以下内容:
<subscriber
for="Products.PluggableAuthService.interfaces.events.IPropertiesUpdatedEvent"
handler=".subscribers.propertiesUpdated"
/>
我已经尝试过使用ipdb来检查subscribers.py的propertiesUpdated是否正在执行,但没有。
我已经检查了https://bugs.launchpad.net/zope-pas/+bug/795086错误报告,称该错误已被修复,但仍不起作用。
我使用的是PluggableAuthService 1.10.0。
有没有更好的方法来解决这个问题?
PropertiesUpdated事件(实现IPropertiesUpdatedEvent)在Plone代码中没有触发(参见Plone 4.3)
更改帐户信息后唯一触发的事件是plone.app.controlpanel.events.ConfigurationChangedEvent
。您可能想要订阅该事件和筛选器(因为该事件是在许多地方引发的通用事件)。
我所做的只是:在zope.event.notify(print event, event.__dict__
)中添加一条print语句,然后在前台模式下启动。
您可能想在上请求增强功能https://dev.plone.org或者更好地实现它。plone.app.users包是一个很好的起点。