From cdf3f66a7fb81ff8c6ab86742b04db73ddcbedba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Mon, 29 Mar 2010 17:08:51 +0000
Subject: [PATCH] don't uninstall all local roles, only the ones passed in
 object_path

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

diff --git a/product/ERP5/Document/BusinessTemplate.py b/product/ERP5/Document/BusinessTemplate.py
index 2ae5c9e57a..2bb8c463b4 100644
--- a/product/ERP5/Document/BusinessTemplate.py
+++ b/product/ERP5/Document/BusinessTemplate.py
@@ -4723,9 +4723,13 @@ class LocalRolesTemplateItem(BaseTemplateItem):
         setattr(obj, '__ac_local_roles__', local_roles_dict)
         obj.reindexObject()
 
-  def uninstall(self, context, **kw):
+  def uninstall(self, context, object_path=None, **kw):
     p = context.getPortalObject()
-    for roles_path in self._objects.keys():
+    if object_path is not None:
+      keys = [object_path]
+    else:
+      keys = self._objects.keys()
+    for roles_path in keys:
       path = roles_path.split('/')[1:]
       obj = p.unrestrictedTraverse(path)
       setattr(obj, '__ac_local_roles__', {})
-- 
2.30.9