From 3e415f10922bf600ff4498f42735c02a4e5a219c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Calonne?= <aurel@nexedi.com>
Date: Mon, 21 Nov 2005 08:53:24 +0000
Subject: [PATCH] remove local roles and owner attributes from objects in
 business templates

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@4366 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/BusinessTemplate.py | 35 +++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/product/ERP5/Document/BusinessTemplate.py b/product/ERP5/Document/BusinessTemplate.py
index c5f973cc9b..8fc1caad52 100755
--- a/product/ERP5/Document/BusinessTemplate.py
+++ b/product/ERP5/Document/BusinessTemplate.py
@@ -299,6 +299,11 @@ class ObjectTemplateItem(BaseTemplateItem):
       object = p.unrestrictedTraverse(relative_url)
       object = object._getCopy(context)
       id_list = object.objectIds()
+      if hasattr(object, '__ac_local_roles__'):
+        # remove local roles
+        object.__ac_local_roles__ = None
+      if hasattr(object, '_owner'):
+        object._owner = None
       if hasattr(object, 'groups'):
         # we must keep groups because it's ereased when we delete subobjects
         groups = deepcopy(object.groups)
@@ -320,6 +325,11 @@ class ObjectTemplateItem(BaseTemplateItem):
       object = p.unrestrictedTraverse(relative_url)
       object = object._getCopy(context)
       id_list = object.objectIds()
+      if hasattr(object, '__ac_local_roles__'):
+        # remove local roles
+        object.__ac_local_roles__ = None
+      if hasattr(object, '_owner'):
+        object._owner = None
       if hasattr(object, 'groups'):
         # we must keep groups because it's ereased when we delete subobjects
         groups = deepcopy(object.groups)
@@ -590,6 +600,11 @@ class PathTemplateItem(ObjectTemplateItem):
       for relative_url in self._resolvePath(p, [], path.split('/')):
         object = p.unrestrictedTraverse(relative_url)
         object = object._getCopy(context)
+        if hasattr(object, '__ac_local_roles__'):
+          # remove local roles
+          object.__ac_local_roles__ = None
+        if hasattr(object, '_owner'):
+          object._owner = None
         if hasattr(object, 'uid'):
           object.uid = None
         self._objects[relative_url] = object
@@ -614,6 +629,11 @@ class CategoryTemplateItem(ObjectTemplateItem):
         object_copy.manage_delObjects(list(id_list))
       else:
         object_copy.manage_delObjects(list(id_list))
+      if hasattr(object, '__ac_local_roles__'):
+        # remove local roles
+        object.__ac_local_roles__ = None
+      if hasattr(object, '_owner'):
+        object._owner = None
       if hasattr(aq_base(object_copy), 'uid'):
         object_copy.uid = None
       self._objects[relative_url] = object_copy
@@ -634,6 +654,11 @@ class CategoryTemplateItem(ObjectTemplateItem):
         object_copy.manage_delObjects(list(id_list))
       else:
         object_copy.manage_delObjects(list(id_list))
+      if hasattr(object, '__ac_local_roles__'):
+        # remove local roles
+        object.__ac_local_roles__ = None
+      if hasattr(object, '_owner'):
+        object._owner = None
       if hasattr(aq_base(object_copy), 'uid'):
         object_copy.uid = None
       self._objects[relative_url] = object_copy
@@ -825,6 +850,11 @@ class PortalTypeTemplateItem(ObjectTemplateItem):
           optional_action_list.append(index)
       if len(optional_action_list) > 0:
         object.deleteActions(selections=optional_action_list)
+      if hasattr(object, '__ac_local_roles__'):
+        # remove local roles
+        object.__ac_local_roles__ = None
+      if hasattr(object, '_owner'):
+        object._owner = None
       if hasattr(object, 'uid'):
         object.uid = None
       self._objects[relative_url] = object
@@ -1247,6 +1277,11 @@ class ActionTemplateItem(ObjectTemplateItem):
           url = os.path.split(relative_url)
           key = os.path.join(url[-2], url[-1], value)
           object = ai._getCopy(context)
+          if hasattr(object, '__ac_local_roles__'):
+            # remove local roles
+            object.__ac_local_roles__ = None
+          if hasattr(object, '_owner'):
+            object._owner = None
           if hasattr(object, 'uid'):
             object.uid = None
           self._objects[key] = object
-- 
2.30.9