From 6ec89c42e0e5b872c2f4c98aeb40d11a7e5f19bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Tue, 25 May 2010 11:32:46 +0000
Subject: [PATCH] extend createPreferenceForUser API to enable the preference
 directly.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35612 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/PreferenceTool.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/product/ERP5Form/PreferenceTool.py b/product/ERP5Form/PreferenceTool.py
index d3a9882060..eb9b6365a1 100644
--- a/product/ERP5Form/PreferenceTool.py
+++ b/product/ERP5Form/PreferenceTool.py
@@ -295,8 +295,9 @@ class PreferenceTool(BaseTool):
 
   security.declareProtected(Permissions.ManagePortal,
                             'createPreferenceForUser')
-  def createPreferenceForUser(self, username):
-    """Creates a preference for a given user.
+  def createPreferenceForUser(self, username, enable=True):
+    """Creates a preference for a given user, and optionnally enable the
+    preference.
     """
     security_manager = getSecurityManager()
     try:
@@ -305,7 +306,10 @@ class PreferenceTool(BaseTool):
       if user is None:
         raise ValueError("User %r not found" % (username, ))
       newSecurityManager(None, user.__of__(user_folder))
-      return self.newContent(portal_type='Preference')
+      preference = self.newContent(portal_type='Preference')
+      if enable:
+        preference.enable()
+      return preference
     finally:
       setSecurityManager(security_manager)
 
-- 
2.30.9