[Erp5-report] r35105 jerome - /erp5/trunk/products/ERP5Form/PreferenceTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 7 13:49:41 CEST 2010
Author: jerome
Date: Fri May 7 13:49:41 2010
New Revision: 35105
URL: http://svn.erp5.org?rev=35105&view=rev
Log:
API to create a preference for any user
Modified:
erp5/trunk/products/ERP5Form/PreferenceTool.py
Modified: erp5/trunk/products/ERP5Form/PreferenceTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/PreferenceTool.py?rev=35105&r1=35104&r2=35105&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] Fri May 7 13:49:41 2010
@@ -27,7 +27,9 @@
#
##############################################################################
-from AccessControl import ClassSecurityInfo, getSecurityManager
+from AccessControl import ClassSecurityInfo
+from AccessControl.SecurityManagement import getSecurityManager,\
+ setSecurityManager, newSecurityManager
from MethodObject import Method
from Products.ERP5Type.Globals import InitializeClass, DTMLFile
from zLOG import LOG, PROBLEM
@@ -274,5 +276,21 @@
template_list.append(template)
return template_list
+ security.declareProtected(Permissions.ManagePortal,
+ 'createPreferenceForUser')
+ def createPreferenceForUser(self, username):
+ """Creates a preference for a given user.
+ """
+ security_manager = getSecurityManager()
+ try:
+ user_folder = self.getPortalObject().acl_users
+ user = user_folder.getUserById(username)
+ if user is None:
+ raise TypeError("User %r not found" % (username, ))
+ newSecurityManager(None, user.__of__(user_folder))
+ return self.newContent(portal_type='Preference')
+ finally:
+ setSecurityManager(security_manager)
+
InitializeClass(PreferenceTool)
More information about the Erp5-report
mailing list