我正在尝试在@@ personal-information上更新成员属性后执行操作,但事件未被触发。在configure.zcml上我提出了以下内容:
<subscriber
for="Products.PluggableAuthService.interfaces.events.IPropertiesUpdatedEvent"
handler=".subscribers.propertiesUpdated"
/>
我已经尝试使用ipdb检查subscriber.py的propertiesUpdated是否正在执行,但事实并非如此。
我已经检查了https://bugs.launchpad.net/zope-pas/+bug/795086错误报告,该错误已经修复,但它仍然无效。
我正在使用PluggableAuthService 1.10.0。
有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
在Plone代码中未触发PropertiesUpdated事件(实现IPropertiesUpdatedEvent)(查看Plone 4.3)。
更改帐户信息后,唯一触发的事件是plone.app.controlpanel.events.ConfigurationChangedEvent
。您可能希望订阅该事件并过滤(因为此事件是在很多地方触发的通用事件)。
我做的事情就是知道在一个动作之后触发了什么事件:我在zope.event.notify(print event, event.__dict__
)中添加一个print语句并以前台模式开始。
您可能希望在https://dev.plone.org上要求增强功能,或者更好地实施它。 plone.app.users包是一个很好的起点。