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

助言がありますか?

4

1 に答える 1

1

.manage_setLocalRoles()イベントを発行しません。このコードは、Zope3イベントよりも前のものです。

代わりにモンキーパッチフックを作成する必要があります。そうしないと、独自のコードがそのメソッドを呼び出すたびに、自分でイベントを発行する必要があります。

于 2013-03-27T14:34:12.373 に答える