Diff for /XMLRpcTools/XMLRpcTools.py between versions 1.5 and 1.9

version 1.5, 2007/03/21 18:26:55 version 1.9, 2007/10/23 17:48:09
Line 12  class XMLRpcServerProxy(SimpleItem): Line 12  class XMLRpcServerProxy(SimpleItem):
           
     meta_type="XMLRpcServerProxy"      meta_type="XMLRpcServerProxy"
           
       rpc_arg_expr='[^A-z0-9]'
       
     manage_options= (      manage_options= (
         {'label':'Main Config','action':'mainConfigHTML'},          {'label':'Main Config','action':'mainConfigHTML'},
         )+ SimpleItem.manage_options          )+ SimpleItem.manage_options
Line 38  class XMLRpcServerProxy(SimpleItem): Line 40  class XMLRpcServerProxy(SimpleItem):
           
     def eval(self,method,argument):      def eval(self,method,argument):
         """do proxy request"""          """do proxy request"""
         sr=self.ServerProxy()          server=self.ServerProxy()
                   
         if self.use_xmlrpc:          if self.use_xmlrpc:
             # for XML-RPC only letters are allowed              # for XML-RPC methods only letters are allowed
             method=re.sub('[^A-z0-9]','',method)              method=re.sub('[^A-z0-9_]','',method)
             argument=re.sub('[^A-z0-9]','',argument)              # clean argument
               argument=re.sub(self.rpc_arg_expr,'',argument)
                           
             mtstr="""sr.%s('%s')"""%(method,argument)              cmd="""server.%s('%s')"""%(method,argument)
                         
             return eval(mtstr)              return eval(cmd)
         else:          else:
             # HTTP              # HTTP
             # TODO: check arguments              # TODO: check arguments
Line 56  class XMLRpcServerProxy(SimpleItem): Line 59  class XMLRpcServerProxy(SimpleItem):
                 uri += '?' + argument                  uri += '?' + argument
                           
             #print "GET: ", uri              #print "GET: ", uri
             sr.request("GET", uri)              server.request("GET", uri)
             resp = sr.getresponse()              resp = server.getresponse()
               data = resp.read()
               #print "GOT: ", resp.status, ", ", resp.reason, " = ", data
               
               return data.decode('UTF-8')
           
       def eval2(self,method,argument1,argument2):
           """do proxy request"""
           server=self.ServerProxy()
           
           if self.use_xmlrpc:
               # for XML-RPC methods only letters are allowed
               method=re.sub('[^A-z0-9_]','',method)
               # clean argument
               argument1=re.sub(self.rpc_arg_expr,'',argument1)
               argument2=re.sub(self.rpc_arg_expr,'',argument2)
               
               cmd="""server.%s('%s','%s')"""%(method,argument1,argument2)
              
               return eval(cmd)
           else:
               # HTTP
               # TODO: check arguments
               uri = method
               if argument1:
                   uri += '?' + argument1 + argument2
               
               #print "GET: ", uri
               server.request("GET", uri)
               resp = server.getresponse()
             data = resp.read()              data = resp.read()
             #print "GOT: ", resp.status, ", ", resp.reason, " = ", data              #print "GOT: ", resp.status, ", ", resp.reason, " = ", data
                           
Line 69  class XMLRpcServerProxy(SimpleItem): Line 101  class XMLRpcServerProxy(SimpleItem):
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageXMLRpcServerProxy.zpt')).__of__(self)
         return pt()          return pt()
           
     def mainConfig(self,serverUrl,use_xmlrpc=True,RESPONSE=None):      def mainConfig(self,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None):
         """main config"""          """main config"""
                   
         self.serverUrl=serverUrl          self.serverUrl=serverUrl
Line 81  class XMLRpcServerProxy(SimpleItem): Line 113  class XMLRpcServerProxy(SimpleItem):
                   
         self.use_xmlrpc=use_xmlrpc          self.use_xmlrpc=use_xmlrpc
                   
           if rpc_arg_expr is not None:
               self.rpc_arg_expr = rpc_arg_expr
           
         if RESPONSE:          if RESPONSE:
             RESPONSE.redirect("/manage_main")              RESPONSE.redirect("/manage_main")
                           
Line 90  def manage_addXMLRpcServerProxyForm(self Line 125  def manage_addXMLRpcServerProxyForm(self
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addXMLRpcServerProxy.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,RESPONSE=None):  def manage_addXMLRpcServerProxy(self,id,serverUrl,use_xmlrpc=True,rpc_arg_expr=None,RESPONSE=None):
     """add the basket"""      """add the basket"""
     if use_xmlrpc and use_xmlrpc != "no":      if use_xmlrpc and use_xmlrpc != "no":
         use_xmlrpc = True          use_xmlrpc = True
     else:      else:
         use_xmlrpc = False          use_xmlrpc = False
                   
       if rpc_arg_expr is not None:
           self.rpc_arg_expr = rpc_arg_expr
           
     ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc)      ob=XMLRpcServerProxy(id,serverUrl,use_xmlrpc)
           
     self._setObject(id, ob)      self._setObject(id, ob)

Removed from v.1.5  
changed lines
  Added in v.1.9


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