diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py index 52b18ad75e74a007f17ba2a92acf558aa8174206..7a03708b5cb4671166085f9b4e79d30d3e356636 100644 --- a/product/CMFActivity/ActivityTool.py +++ b/product/CMFActivity/ActivityTool.py @@ -453,6 +453,7 @@ class GroupedMessage(object): # XXX: Allowing restricted code to implement a grouping method is questionable # but there already exist some. + __parent__ = property(lambda self: self.object) # for object _guarded_writes = 1 # for result allow_class(GroupedMessage) diff --git a/product/CMFActivity/tests/testCMFActivity.py b/product/CMFActivity/tests/testCMFActivity.py index f4dbff330bbffbe7b3b2fff6e7590b6bfd16c749..41563ad9e3c9dae4dc10ef25ad0bee322981723a 100644 --- a/product/CMFActivity/tests/testCMFActivity.py +++ b/product/CMFActivity/tests/testCMFActivity.py @@ -3106,12 +3106,15 @@ class TestCMFActivity(ERP5TypeTestCase, LogInterceptor): def test_restrictedGroupMethod(self): skin = self.portal.portal_skins.custom script_id = self.id() - createZODBPythonScript(skin, script_id, "message_list", """if 1: + script = createZODBPythonScript(skin, script_id, "message_list", """if 1: for m in message_list: m.result = m.object.getProperty(*m.args, **m.kw) """) + script.manage_proxy(("Manager",)) obj = self.portal.portal_activities.newActiveProcess(causality_value_list=( self.portal.person_module, self.portal.organisation_module)) + obj.manage_permission('Access contents information', ['Manager']) + self.logout() foo = obj.activate(activity='SQLQueue', group_method_id=script_id, active_process=obj.getPath()).foo