7

我试图在更新@@personal-information 上的成员属性后执行一项操作,但该事件没有被触发。在 configure.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。

有没有更好的方法来解决这个问题?

4

1 回答 1

2

PropertiesUpdated 事件(实现 IPropertiesUpdatedEvent)不会在 Plone 代码中触发(查看 Plone 4.3)。

更改帐户信息后唯一触发的事件是plone.app.controlpanel.events.ConfigurationChangedEvent. 您可能想要订阅该事件并进行过滤(因为该事件是在很多地方触发的通用事件)。

我要做的就是知道在一个动作之后会触发什么事件:我在 zope.event.notify ( print event, event.__dict__) 中添加一个打印语句并以前台模式启动。

您可能想在https://dev.plone.org上请求增强或更好地实现它。plone.app.users 包是一个很好的起点。

于 2013-10-12T12:35:40.837 回答