X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/setuphandlers.py diff --git a/Products/Plinn/setuphandlers.py b/Products/Plinn/setuphandlers.py new file mode 100644 index 0000000..a3260f6 --- /dev/null +++ b/Products/Plinn/setuphandlers.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +####################################################################################### +# Plinn - http://plinn.org # +# Copyright (C) 2005-2007 Benoît PIN # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # +####################################################################################### +""" Plinn specific GenericSetup handlers + + + +""" + +from Products.CMFCore.utils import getToolByName +from Products.PythonScripts.PythonScript import PythonScript + +VARIOUS_FILENAME = 'various.py' + + +def importVarious(context) : + """ exec python code from setup python script """ + site = context.getSite() + text = context.readDataFile(VARIOUS_FILENAME) + + if not text : return + + site._setPortalTypeName('CMF Site') + + script = PythonScript('various') + script = script.__of__(site) + script.write(text) + out = script(site) + + # clone current authenticated user into portal's acl_users + from AccessControl import getSecurityManager + sm = getSecurityManager() + user = sm.getUser() + mtool = getToolByName(site, 'portal_membership') + mtool.addMember(user.getId(), user._getPassword(), user.getRoles(), user.getDomains()) + + return out + +def exportVarious(exportContext): + site = exportContext.getSite() + + stool = getToolByName(site, 'portal_setup') + importContext = stool._getImportContext(stool.getBaselineContextID()) + + exportContext.writeDataFile( VARIOUS_FILENAME, + importContext.readDataFile(VARIOUS_FILENAME), + 'text/plain' ) + + return 'Various Plinn settings exported.' \ No newline at end of file