Commit 32225273 authored by salaun's avatar salaun
Browse files

New features: new SOAP server


git-svn-id: https://subversion.renater.fr/sympa/trunk@2047 05aa8bb8-cd2b-0410-b1d7-8918dfa770ce
parent 649903b7
......@@ -235,7 +235,7 @@ clean:
$(MAKE) PERL='${PERL}' clean) || exit 1; \
done;
install: importantchanges installsrc installnls installwws installman installscript installsample installdir installconfig installdoc
install: importantchanges installsrc installnls installwws installman installscript installsample installdir installconfig installdoc installsoap
importantchanges:
@( PERL=$(PERL); export PERL; \
......@@ -287,6 +287,15 @@ installwws:
PIDDIR='${PIDDIR}' CONFIG='${CONFIG}' WWSCONFIG='${WWSCONFIG}' ETCBINDIR='${ETCBINDIR}' \
DESTDIR='${DESTDIR}' USER='${USER}' GROUP='${GROUP}' ICONSDIR='${ICONSDIR}' newinstall) || exit 1;
installsoap:
@(cd soap && echo "making in soap/..." && \
$(MAKE) SH='${SH}' CC='${CC}' CFLAGS='${CFLAGS}' PERL='${PERL}' \
DIR='${DIR}' BINDIR='${BINDIR}' SBINDIR='${SBINDIR}' LIBDIR='${LIBDIR}' \
USER='${USER}' GROUP='${GROUP}' \
CGIDIR='${CGIDIR}' WWSBINDIR='${WWSBINDIR}' MAILERPROGDIR='${MAILERPROGDIR}' \
PIDDIR='${PIDDIR}' CONFIG='${CONFIG}' WWSCONFIG='${WWSCONFIG}' ETCBINDIR='${ETCBINDIR}' \
DESTDIR='${DESTDIR}' USER='${USER}' GROUP='${GROUP}' ICONSDIR='${ICONSDIR}' newinstall) || exit 1;
installsample:
@(cd src/etc/sample && echo "making in src/etc/sample..." && \
$(MAKE) SH='${SH}' CC='${CC}' CFLAGS='${CFLAGS}' PERL='${PERL}' LOG_SOCKET_TYPE='${LOG_SOCKET_TYPE}' \
......
......@@ -424,7 +424,7 @@ clean:
$(MAKE) PERL='${PERL}' clean) || exit 1; \
done;
install: importantchanges installsrc installnls installwws installman installscript installsample installdir installconfig installdoc
install: importantchanges installsrc installnls installwws installman installscript installsample installdir installconfig installdoc installsoap
importantchanges:
@( PERL=$(PERL); export PERL; \
......@@ -475,6 +475,15 @@ installwws:
PIDDIR='${PIDDIR}' CONFIG='${CONFIG}' WWSCONFIG='${WWSCONFIG}' ETCBINDIR='${ETCBINDIR}' \
DESTDIR='${DESTDIR}' USER='${USER}' GROUP='${GROUP}' ICONSDIR='${ICONSDIR}' newinstall) || exit 1;
installsoap:
@(cd soap && echo "making in soap/..." && \
$(MAKE) SH='${SH}' CC='${CC}' CFLAGS='${CFLAGS}' PERL='${PERL}' \
DIR='${DIR}' BINDIR='${BINDIR}' SBINDIR='${SBINDIR}' LIBDIR='${LIBDIR}' \
USER='${USER}' GROUP='${GROUP}' \
CGIDIR='${CGIDIR}' WWSBINDIR='${WWSBINDIR}' MAILERPROGDIR='${MAILERPROGDIR}' \
PIDDIR='${PIDDIR}' CONFIG='${CONFIG}' WWSCONFIG='${WWSCONFIG}' ETCBINDIR='${ETCBINDIR}' \
DESTDIR='${DESTDIR}' USER='${USER}' GROUP='${GROUP}' ICONSDIR='${ICONSDIR}' newinstall) || exit 1;
installsample:
@(cd src/etc/sample && echo "making in src/etc/sample..." && \
$(MAKE) SH='${SH}' CC='${CC}' CFLAGS='${CFLAGS}' PERL='${PERL}' LOG_SOCKET_TYPE='${LOG_SOCKET_TYPE}' \
......
# Makefile - This Makefile does the web interface of Sympa installation
# RCS Identication ; $Revision$ ; $Date$
#
# Sympa - SYsteme de Multi-Postage Automatique
# Copyright (c) 1997, 1998, 1999, 2000, 2001 Comite Reseau des Universites
# Copyright (c) 1997,1998, 1999 Institut Pasteur & Christophe Wolfhugel
#
# 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.
cgi_SUBST = sympa_soap_server.fcgi sympa_soap_client.pl
lib_SUBST = sympasoap.pm
SRC = sympa.wsdl
default: none
clean:
rm -rf $(DESTDIR)$(SBINDIR)
install:
echo "Please use the main Makefile for installing soapSympa."
newinstall: makedir $(cgi_SUBST) $(lib_SUBST) substcgi substlib installsrc installmod
installmod:
@for i in $(SRC) ; do \
chown $(USER) $(DESTDIR)$(ETCBINDIR)/$$i; \
chgrp $(GROUP) $(DESTDIR)$(ETCBINDIR)/$$i; \
done
@for i in $(cgi_SUBST) ; do \
chown $(USER) $(DESTDIR)$(CGIDIR)/$$i; \
chgrp $(GROUP) $(DESTDIR)$(CGIDIR)/$$i; \
done
@echo "Setting SetUID bit on sympa_soap_server.fcgi..."
chmod u+s $(DESTDIR)$(CGIDIR)/sympa_soap_server.fcgi
chmod g+s $(DESTDIR)$(CGIDIR)/sympa_soap_server.fcgi
@for i in $(lib_SUBST) ; do \
chown $(USER) $(DESTDIR)$(LIBDIR)/$$i; \
chgrp $(GROUP) $(DESTDIR)$(LIBDIR)/$$i; \
chmod 644 $(DESTDIR)$(LIBDIR)/$$i; \
done
makedir:
@if [ ! -d $(DESTDIR)$(CGIDIR) ]; then \
echo "Creating required directory $(DESTDIR)$(CGIDIR)"; \
mkdir -p $(DESTDIR)$(CGIDIR); \
fi
@if [ ! -d $(DESTDIR)$(LIBDIR) ]; then \
echo "Creating required directory $(DESTDIR)$(LIBDIR)"; \
mkdir -p $(DESTDIR)$(LIBDIR); \
fi
@if [ ! -d $(DESTDIR)$(ETCBINDIR) ]; then \
echo "Creating required directory $(DESTDIR)$(ETCBINDIR)"; \
mkdir -p $(DESTDIR)$(ETCBINDIR); \
fi
@if [ ! -d $(DESTDIR)$(LIBDIR)/Marc ]; then \
echo "Creating required directory $(DESTDIR)$(LIBDIR)/Marc"; \
mkdir $(DESTDIR)$(LIBDIR)/Marc; \
fi
installsrc:
@echo
@echo "Installing sources..."
cp $(SRC) $(DESTDIR)$(ETCBINDIR)
substlib:
@echo "Doing multiple substitutions while installing librairies..."
@( \
PERL=$(PERL); export PERL; \
UMASK=0644; export UMASK; \
INSTALLDIR=$(LIBDIR); export INSTALLDIR; \
SBINDIR=$(SBINDIR); export SBINDIR; \
CGIDIR=$(CGIDIR); export CGIDIR; \
PIDDIR=$(PIDDIR); export PIDDIR;\
LIBDIR=$(LIBDIR); export LIBDIR; \
DESTDIR=$(DESTDIR); export DESDIR; \
ETCBINDIR=$(ETCBINDIR); export ETCBINDIR; \
MAILERPROGDIR=$(MAILERPROGDIR); export MAILERPROGDIR; \
ICONSDIR=$(ICONSDIR); export ICONSDIR; \
WWSCONFIG=$(WWSCONFIG); export WWSCONFIG; \
CONFIG=$(CONFIG); export CONFIG; \
$(PERL) ../subst.pl $(lib_SUBST) \
)
substcgi:
@echo "Doing multiple substitutions while installing CGIs..."
@( \
PERL=$(PERL); export PERL; \
UMASK=0755; export UMASK; \
INSTALLDIR=$(CGIDIR); export INSTALLDIR; \
SBINDIR=$(SBINDIR); export SBINDIR; \
CGIDIR=$(CGIDIR); export CGIDIR; \
PIDDIR=$(PIDDIR); export PIDDIR;\
LIBDIR=$(LIBDIR); export LIBDIR; \
DESTDIR=$(DESTDIR); export DESDIR; \
ETCBINDIR=$(ETCBINDIR); export ETCBINDIR; \
MAILERPROGDIR=$(MAILERPROGDIR); export MAILERPROGDIR; \
ICONSDIR=$(ICONSDIR); export ICONSDIR; \
WWSCONFIG=$(WWSCONFIG); export WWSCONFIG; \
CONFIG=$(CONFIG); export CONFIG; \
$(PERL) ../subst.pl $(cgi_SUBST) \
)
<?xml version="1.0"?>
<definitions name="Sympa"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="[conf->wwsympa_url]/wsdl"
xmlns:tns="[conf->wwsympa_url]/wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsdl="[conf->soap_url]/SympaFunctions.xsd">
<!-- types part -->
<types>
<schema targetNamespace="[conf->soap_url]/SympaFunctions.xsd"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://www.w3.org/2001/XMLSchema">
<simpleType name="Status_type">
<restriction base="string">
<enumeration value="admin"/>
<enumeration value="listmaster"/>
<enumeration value="owner"/>
<enumeration value="member"/>
</restriction>
</simpleType>
<simpleType name="Reception_type">
<restriction base="string">
<enumeration value="digest"/>
<enumeration value="html"/>
<enumeration value="mail"/>
<enumeration value="nomail"/>
<enumeration value="not_me"/>
<enumeration value="notice"/>
<enumeration value="summary"/>
<enumeration value="txt"/>
<enumeration value="urlize"/>
</restriction>
</simpleType>
<simpleType name="Visibility_type">
<restriction base="string">
<enumeration value="conceal"/>
<enumeration value="public"/>
</restriction>
</simpleType>
<complexType name="ArrayOfLists">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsdl:List_type[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOfString">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="List_type">
<element name="listname" minOccurs="1" type="string"/>
<element name="infos" minOccurs="0" type="string"/>
<element name="url" minOccurs="0" type="string"/>
<element name="sender" minOccurs="0" type="xsdl:Sender_type"/>
</complexType>
<complexType name="Sender_type">
<element name="email" minOccurs="1" type="string"/>
<element name="status" minOccurs="0" type="xsdl:Status_type"/>
<element name="reception" minOccurs="0" type="xsdl:Reception_type"/>
<element name="visibility" minOccurs="0" type="xsdl:Visibility_type"/>
</complexType>
</schema>
</types>
<!-- message part -->
<message name="do_whichRequest">
<part name="email" type="xsd:string"/>
<part name="password" type="xsd:string"/>
</message>
<message name="do_whichResponse">
<part name="return" type="xsdl:ArrayOfLists"/>
</message>
<message name="isSubscriberRequest">
<part name="list" type="xsd:string"/>
<part name="user" type="xsd:string"/>
</message>
<message name="isSubscriberResponse">
<part name="return" type="xsd:boolean"/>
</message>
<message name="amIRequest">
<part name="list" type="xsd:string"/>
<part name="function" type="xsd:string"/>
<part name="user" type="xsd:string"/>
</message>
<message name="amIResponse">
<part name="return" type="xsd:boolean"/>
</message>
<message name="reviewRequest">
<part name="list" type="xsd:string"/>
<part name="robot" type="xsd:string"/>
<part name="sender" type="xsd:string"/>
<part name="password" type="xsd:string"/>
</message>
<message name="reviewResponse">
<part name="return" type="xsdl:ArrayOfString"/>
</message>
<message name="signoffRequest">
<part name="list" type="xsd:string"/>
<part name="robot" type="xsd:string"/>
<part name="sender" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="email" type="xsd:string" minOccurs="0"/>
</message>
<message name="signoffResponse">
<part name="return" type="xsdl:boolean"/>
</message>
<message name="subscribeRequest">
<part name="list" type="xsd:string"/>
<part name="robot" type="xsd:string"/>
<part name="sender" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="gecos" type="xsd:string" minOccurs="0"/>
</message>
<message name="subscribeResponse">
<part name="return" type="xsdl:boolean"/>
</message>
<message name="do_loginRequest">
<part name="host" type="xsd:string"/>
<part name="email" type="xsd:string"/>
<part name="password" type="xsd:string"/>
</message>
<message name="do_loginResponse">
<part name="return" type="xsd:string"/>
</message>
<message name="do_listsRequest">
<part name="robot" type="xsd:string"/>
<part name="email" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="topic" type="xsd:string"/>
<part name="subtopic" type="xsd:string"/>
</message>
<message name="do_listsResponse">
<part name="return" type="xsdl:ArrayOfLists"/>
</message>
<message name="check_cookieRequest">
<part name="cookie" type="xsd:string"/>
</message>
<message name="check_cookieResponse">
<part name="email" type="xsd:string"/>
</message>
<!-- portType part -->
<portType name="do_whichPortType">
<operation name="do_which">
<input message="tns:do_whichRequest" />
<output message="tns:do_whichResponse" />
</operation>
</portType>
<portType name="isSubscriberPortType">
<operation name="isSubscriber">
<input message="tns:isSubscriberRequest" />
<output message="tns:isSubscriberResponse" />
</operation>
</portType>
<portType name="amIPortType">
<operation name="amI">
<input message="tns:amIRequest" />
<output message="tns:amIResponse" />
</operation>
</portType>
<portType name="reviewPortType">
<operation name="review">
<input message="tns:reviewRequest" />
<output message="tns:reviewResponse" />
</operation>
</portType>
<portType name="subscribePortType">
<operation name="subscribe">
<input message="tns:subscribeRequest" />
<output message="tns:subscribeResponse" />
</operation>
</portType>
<portType name="signoffPortType">
<operation name="signoff">
<input message="tns:signoffRequest" />
<output message="tns:signoffResponse" />
</operation>
</portType>
<portType name="do_loginPortType">
<operation name="do_login">
<input message="tns:do_loginRequest" />
<output message="tns:do_loginResponse" />
</operation>
</portType>
<portType name="do_listsPortType">
<operation name="do_lists">
<input message="tns:do_listsRequest" />
<output message="tns:do_listsResponse" />
</operation>
</portType>
<portType name="check_cookiePortType">
<operation name="check_cookie">
<input message="tns:check_cookieRequest" />
<output message="tns:check_cookieResponse" />
</operation>
</portType>
<!-- Binding part -->
<binding name="do_whichBinding" type="tns:do_whichPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="do_which">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:do_which"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:do_which"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="isSubscriberBinding" type="tns:isSubscriberPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="isSubscriber">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:isSubscriber"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:isSubscriber"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="amIBinding" type="tns:amIPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="amI">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:amI"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:amI"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="reviewBinding" type="tns:reviewPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="review">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:review"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:review"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="subscribeBinding" type="tns:subscribePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="subscribe">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:subscribe"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:subscribe"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="signoffBinding" type="tns:signoffPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="signoff">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:signoff"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:signoff"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="do_loginBinding" type="tns:do_loginPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="do_login">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:do_login"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:do_login"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="do_listsBinding" type="tns:do_listsPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="do_lists">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:do_lists"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:do_lists"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<binding name="check_cookieBinding" type="tns:check_cookiePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="check_cookie">
<soap:operation soapAction=""/>
<input>
<soap:body use="encoded"
namespace="urn:check_cookie"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:check_cookie"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<!-- service part -->
<service name="SympaSOAP">
<documentation>
Sympa do_which SOAP Service.
</documentation>
<port name="do_whichPort" binding="tns:do_whichBinding">
<soap:address location="[conf->soap_url]/do_which"/>
</port>
<documentation>
Sympa isSubscriber SOAP Service.
</documentation>
<port name="isSubscriberPort" binding="tns:isSubscriberBinding">
<soap:address location="[conf->soap_url]/isSubscriber"/>
</port>
<documentation>
Sympa amI SOAP Service.
</documentation>
<port name="amIPort" binding="tns:amIBinding">
<soap:address location="[conf->soap_url]/amI"/>
</port>
<documentation>
Sympa review SOAP Service.
</documentation>
<port name="reviewPort" binding="tns:reviewBinding">
<soap:address location="[conf->soap_url]/review"/>
</port>
<documentation>
Sympa subscribe SOAP Service.
</documentation>
<port name="subscribePort" binding="tns:subscribeBinding">
<soap:address location="[conf->soap_url]/subscribe"/>
</port>
<documentation>
Sympa sign off SOAP Service.
</documentation>
<port name="signoffPort" binding="tns:signoffBinding">
<soap:address location="[conf->soap_url]/signoff"/>
</port>
<documentation>
Sympa login SOAP Service.
</documentation>
<port name="do_loginPort" binding="tns:do_loginBinding">
<soap:address location="[conf->soap_url]/do_login"/>
</port>
<documentation>
Sympa do_lists SOAP Service.
</documentation>
<port name="do_listsPort" binding="tns:do_listsBinding">
<soap:address location="[conf->soap_url]/do_lists"/>
</port>
<documentation>
Sympa check cookie SOAP Service.
</documentation>
<port name="check_cookiePort" binding="tns:check_cookieBinding">
<soap:address location="[conf->soap_url]/check_cookie"/>
</port>
</service>