J'ai retrouvé ça en faisant du ménage... """XXX Python Scripts Product This product provides unrestricted, unsafe Python-based Scripts. """ -- If the only tool you have is a hammer, you tend to see every problem as a nail. Si le seul outil dont vous disposez est un marteau, vous avez tendance à voir chaque problème comme un clou. --Abraham Maslow """XXX Python Scripts Product This product provides unrestricted, unsafe Python-based Scripts. """ import os # They can't be created or edited without setting this envar, tho. NAYB = os.environ.get('ALL_YOUR_BASE_ARE_BELONG_TO') != 'US' from Globals import DTMLFile, MessageDialog from string import join, strip, rstrip, split, replace, lower from urllib import quote manage_addXXXPythonScriptForm = DTMLFile('www/XXXpyScriptAdd', globals()) _marker = [] # Create a new marker object def manage_addXXXPythonScript(self, id, REQUEST=None, submit=None): """Add a XXX Python Script to a folder.""" id = str(id) id = self._setObject(id, XXXPythonScript(id)) if REQUEST is not None: file = REQUEST.form.get('file', '') if type(file) is not type(''): file = file.read() if file: self._getOb(id).write(file) try: u = self.DestinationURL() except: u = REQUEST['URL1'] if submit==" Add and Edit ": u="%s/%s" % (u,quote(id)) REQUEST.RESPONSE.redirect(u+'/manage_main') return '' from Products.PythonScripts.PythonScript import PythonScript, Python_magic class XXXPythonScript(PythonScript): """Scripts written in Python. Removes all restrictions imposed by Python Scripts. """ meta_type='Script (Python, unsafe)' def _makeFunction(self, allowSideEffect=0): if NAYB: raise RuntimeError, '<pre>XXX Scripts are Edit-locked</pre>' # Was the cached bytecode compiled with a compatible Python? if getattr(self, 'Python_magic', None) != Python_magic: allowSideEffect = 1 if allowSideEffect: self._checkCBlock(PrintBlock) self.ZCacheable_invalidate() if getattr(self, '_v_errors', None): raise "Python Script Error", ('<pre>%s</pre>' % join(self._v_errors, '\n') ) return self._newfun(allowSideEffect, {'__debug__': __debug__}, __builtins__=__builtins__) from Products.PythonScripts.zbytecodehacks.VSExec import CodeBlock, Printing class PrintBlock(CodeBlock): Mungers = [Printing]
participants (1)
-
Pierre-Julien Grizel