2013-03-27 59 views
0

我想使用“manage_setLocalRoles”方法附加事件触发。 我喜欢这个:如何在设置本地角色后触发事件

def send_participation_request(self): 
    review_state = self.portal_workflow.getInfoFor(self.context, "review_state", "") 
    if review_state =="public": 
     self.context.manage_setLocalRoles(user.id,["Role"]) #fire event 
     self.context.reindexObjectSecurity() 
    return False 

有什么建议吗?

回答

1

.manage_setLocalRoles()不会发出任何事件。代码早于Zope 3事件。

您必须改为创建一个monkey-patch钩子,或者在您自己的代码调用该方法时自行发出一个事件。

+0

可以用.reindexObject()来完成吗?谢谢您的帮助! – jtmolon 2013-03-27 14:48:05

+0

@jtmolon:'.reindexObject()'也不会发出事件。然而,当转换发生时有工作流事件,也许这就是你正在寻找的东西? – 2013-03-27 14:50:25

+0

其实我只是改变了内容中成员的角色,在这个过程中没有工作流程转换。我需要做的是更改角色后更新列表。 – jtmolon 2013-03-27 15:00:03

相关问题