Commit 4fa46e00 authored by Ivan Tyagov's avatar Ivan Tyagov

Add generic Web Service tool.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25694 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent af27896e
##############################################################################
#
# Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.
# Ivan Tyagov <ivan@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from AccessControl import ClassSecurityInfo
from Globals import InitializeClass, DTMLFile
from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type import Permissions
from Products.ERP5 import _dtmldir
from Products.ERP5Type.ConnectionPlugin.XMLRPCConnection import XMLRPCConnection
from Products.ERP5Type.ConnectionPlugin.SOAPConnection import SOAPConnection
class WebServiceTool(BaseTool):
"""
This tool can do all kinds of web services in all kinds of protocols.
"""
id = 'portal_web_services'
title = 'Web Service Tool'
meta_type = 'ERP5 Web Service Tool'
portal_type = 'Web Service Tool'
allowed_content_types = ()
security = ClassSecurityInfo()
security.declareProtected(Permissions.ManagePortal, 'manage_overview')
manage_overview = DTMLFile('explainWebServiceTool', _dtmldir )
def connect(self, url, user_name=None, password=None, transport=None):
"""
Connect to remote instances
of any kind of web service (not only ERP5) with many
different kinds of transport like 'xml-rpc' or 'soap'
"""
# XXX: implement connection caching per zope thread
if transport == 'xml-rpc':
connection_handler = XMLRPCConnection(url, user_name, password)
elif transport == 'soap':
connection_handler = SOAPConnection(url, user_name, password)
connection_handler = connection_handler.connect()
return connection_handler
InitializeClass(WebServiceTool)
...@@ -47,7 +47,7 @@ product_path = package_home( globals() ) ...@@ -47,7 +47,7 @@ product_path = package_home( globals() )
from Tool import CategoryTool, SimulationTool, RuleTool, IdTool, TemplateTool,\ from Tool import CategoryTool, SimulationTool, RuleTool, IdTool, TemplateTool,\
TestTool, DomainTool, AlarmTool, OrderTool, DeliveryTool,\ TestTool, DomainTool, AlarmTool, OrderTool, DeliveryTool,\
TrashTool, ContributionTool, NotificationTool, PasswordTool,\ TrashTool, ContributionTool, NotificationTool, PasswordTool,\
GadgetTool, ContributionRegistryTool, IntrospectionTool GadgetTool, ContributionRegistryTool, IntrospectionTool, WebServiceTool
import ERP5Site import ERP5Site
object_classes = ( ERP5Site.ERP5Site, object_classes = ( ERP5Site.ERP5Site,
) )
...@@ -68,6 +68,7 @@ portal_tools = ( CategoryTool.CategoryTool, ...@@ -68,6 +68,7 @@ portal_tools = ( CategoryTool.CategoryTool,
GadgetTool.GadgetTool, GadgetTool.GadgetTool,
ContributionRegistryTool.ContributionRegistryTool, ContributionRegistryTool.ContributionRegistryTool,
IntrospectionTool.IntrospectionTool, IntrospectionTool.IntrospectionTool,
WebServiceTool.WebServiceTool,
) )
content_classes = () content_classes = ()
content_constructors = () content_constructors = ()
......
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<h3>Web Service Tool</h3>
<p>
Web Service Tool can do all kinds of web services in all kinds of protocols.
</p>
<dtml-var manage_page_footer>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment