Annotation of XMLRpcTools/XMLRpcTools.py, revision 1.1

1.1     ! dwinter     1: 
        !             2: from OFS.SimpleItem import SimpleItem
        !             3: import xmlrpclib
        !             4: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
        !             5: import os.path
        !             6: from Globals import package_home
        !             7: 
        !             8: class XMLRpcServerProxy(SimpleItem):
        !             9:     """makes servery proxy available for zope"""
        !            10:     
        !            11:     meta_type="XMLRpcServerProxy"
        !            12:     
        !            13:     manage_options= (
        !            14:         {'label':'Main Config','action':'mainConfigHTML'},
        !            15:         )+ SimpleItem.manage_options
        !            16: 
        !            17:     def __init__(self,id,serverUrl):
        !            18:         """init server proxy"""
        !            19:         self.id=id
        !            20:         self.serverUrl=id
        !            21:         
        !            22:     def ServerProxy(self,serverUrl=None):
        !            23:         """get the proxy"""
        !            24:         if not serverUrl:
        !            25:             serverUrl=self.serverUrl
        !            26:       
        !            27:         pr=xmlrpclib.ServerProxy(serverUrl)
        !            28:        
        !            29:         return pr
        !            30:     
        !            31:     def eval(self,method,argument):
        !            32:         """do proxy request"""
        !            33:         #only letters are allowed
        !            34:         method=re.sub('[^A-z]','',method)
        !            35:         argument=re.sub('[^A-z]','',argument)
        !            36:         
        !            37:         sr=self.ServerProxy()
        !            38:         mtstr="""sr.%s('%s')"""%(method,argument)
        !            39:         
        !            40:      
        !            41:         return eval(mtstr)
        !            42:     
        !            43:     def mainConfigHTML(self):
        !            44:         """main config form"""
        !            45:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self)
        !            46:         return pt()
        !            47:     
        !            48:     def mainConfig(self,serverUrl,RESPONSE=None):
        !            49:         """main config"""
        !            50:         
        !            51:         self.serverUrl=serverUrl
        !            52:         
        !            53:         
        !            54:         if RESPONSE:
        !            55:             RESPONSE.redirect("/manage_main")
        !            56:             
        !            57: 
        !            58: def manage_addXMLRpcServerProxyForm(self):
        !            59:     """add the CXMLRpcServerProxy"""
        !            60:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self)
        !            61:     return pt()
        !            62: 
        !            63: def manage_addXMLRpcServerProxy(self,id,serverUrl,RESPONSE=None):
        !            64:     """add the basket"""
        !            65:     ob=XMLRpcServerProxy(id,serverUrl)
        !            66:     
        !            67:     self._setObject(id, ob)
        !            68:     
        !            69:     if RESPONSE is not None:
        !            70:         RESPONSE.redirect('manage_main')

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>