mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-29 17:29:11 +01:00
Update for egroupware
This commit is contained in:
parent
4f382debb6
commit
14c759a62c
Binary file not shown.
@ -27,10 +27,10 @@
|
||||
Proposal for a Common Groupware Interface Standard
|
||||
\layout Author
|
||||
|
||||
by Miles Lott <milosch@phpgroupware.org>
|
||||
(C) 2001-2004 Miles Lott <milos@groupwhere.org>
|
||||
\layout Date
|
||||
|
||||
September 13, 2001
|
||||
September 13, 2001 and December 29, 2003
|
||||
\layout Standard
|
||||
|
||||
|
||||
|
@ -27,10 +27,18 @@
|
||||
Proposal for a Common Groupware Interface Standard
|
||||
\layout Author
|
||||
|
||||
by Miles Lott <milosch@phpgroupware.org>
|
||||
by Miles Lott <milos@groupwhere.org>
|
||||
\layout Date
|
||||
|
||||
September 13, 2001
|
||||
September 13, 2001 and December 29, 2003
|
||||
\layout Standard
|
||||
|
||||
|
||||
\begin_inset LatexCommand \tableofcontents{}
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\layout Section
|
||||
|
||||
Scope
|
||||
|
Binary file not shown.
@ -5,18 +5,27 @@
|
||||
See http://www.lyx.org/ for more information -->
|
||||
<artheader>
|
||||
<title>
|
||||
Common Groupware Interface Standard
|
||||
Proposal for a Common Groupware Interface Standard
|
||||
</title>
|
||||
<author>
|
||||
(C) 2001-2004 Miles Lott <milos@groupwhere.org>
|
||||
</author>
|
||||
<date>
|
||||
September 13, 2001 and December 29, 2003
|
||||
</date>
|
||||
<para>
|
||||
<toc></toc>
|
||||
</para>
|
||||
</artheader>
|
||||
<sect1>
|
||||
<title>
|
||||
Scope
|
||||
</title>
|
||||
<para>
|
||||
As many different opensource and freesoftware groupware systems are being developed, the full realization of the dream of a connected world must be prefaced by an agreement to interoperate. There are limited ways in which cooperation with commercial groupware systems may be achecived, the majority if not all of which were derived via the establishment of open standards. These might include email (POP3/IMAP), contacts(LDAP,vcard), or scheduling(ical/vcal). It is felt that while these have proven themselves to be very useful, they are insufficient to satisfy the real needs of a typical corporate environment.
|
||||
As many different opensource and freesoftware groupware systems are being developed, the full realization of the dream of a connected world should be prefaced by an agreement to interoperate. There are limited ways in which cooperation with these and commercial groupware systems may be achecived, the majority if not all of which were derived via the establishment of open standards. These might include email (POP3/IMAP), contacts(LDAP,vcard), or scheduling(ical/vcal). It is felt that while these have proven themselves to be very useful, they are insufficient to satisfy the real needs of a typical business environment.
|
||||
</para>
|
||||
<para>
|
||||
This document hopes to provide a reasonable recommendation for a set of standardized methods to be used for groupware services interaction. More specifically, it hopes to address the need for such a standard as well as to spur discussion about the common service names and methods themselves.
|
||||
This document hopes to provide a reasonable, if limited, recommendation for a set of standardized methods to be used for groupware services interaction. More specifically, it hopes to address the need for such a standard as well as to spur discussion about the common service names and methods themselves.
|
||||
</para>
|
||||
<para>
|
||||
Examples will be given for implementations in XML-RPC, since this standard is relatively fixed and open.
|
||||
@ -62,7 +71,7 @@
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
These services are represented already in places such as existing groupware client-server applications and also in the PalmOS basic-4 buttons and applications.
|
||||
These services are represented already in places such as existing groupware client-server applications and also in the PalmOS basic-4 buttons and applications. Different systems may have different names for these services internally, e.g. Contacts - addresses, addressbook, people, Schedule - calendar, agenda, meetings.
|
||||
</para>
|
||||
<para>
|
||||
Within each of these services are some common methods that would be called to store, retreive, or update data:
|
||||
@ -102,7 +111,7 @@
|
||||
The concept of contacts may encompass local addressbooks, LDAP, and lists stored in other media. The purpose of the contacts service is not to duplicate or attempt to replace these. In some respects, it might do just that. But its goal is more so to provide a common and shareable way for the other core services to create, edit, and read a common user and address list. All of the other services may use the contact service to obtain record owner information to be used in access control. They would also use them when it is required to share this data, as with a meeting where other local and non-local users will be invited to attend.
|
||||
</para>
|
||||
<para>
|
||||
Contacts may include the local installed user base, users on other cooperative servers, or email addresses used for limited cooperation with other groupware services that are not compliant with this service scheme or implementations thereof. It could also include individuals using web-based or local ISP email services. The scope of this document, however, is to define the service with regard to the common methods to be used:
|
||||
Contacts may include the local installed user base, users on other cooperative servers, or email addresses used for limited cooperation with other groupware services that are not compliant with this service scheme or implementations thereof. It could also include individuals using web-based or local ISP email services. The scope of this document, however, is to define the service with regard to the common methods to be used for server-server and client-server communications:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@ -260,12 +269,6 @@
|
||||
]]><![ CDATA [<member><name>filter</name>
|
||||
]]><![ CDATA [<value><string></string></value>
|
||||
]]><![ CDATA [</member>
|
||||
]]><![ CDATA [<member><name>sort</name>
|
||||
]]><![ CDATA [<value><string></string></value>
|
||||
]]><![ CDATA [</member>
|
||||
]]><![ CDATA [<member><name>order</name>
|
||||
]]><![ CDATA [<value><string></string></value>
|
||||
]]><![ CDATA [</member>
|
||||
]]><![ CDATA [</struct></value>
|
||||
]]><![ CDATA [</param>
|
||||
]]><![ CDATA [</params>
|
||||
|
@ -1,25 +1,50 @@
|
||||
|
||||
|
||||
Common Groupware Interface Standard
|
||||
Proposal for a Common Groupware Interface Standard
|
||||
|
||||
(C) 2001-2004 Miles Lott <milos@groupwhere.org>
|
||||
|
||||
September 13, 2001 and December 29, 2003
|
||||
|
||||
Table of Contents
|
||||
|
||||
1 Scope
|
||||
2 The Services
|
||||
2.1 Overview
|
||||
2.2 Detail
|
||||
2.2.1 Contacts
|
||||
2.2.2 Schedule
|
||||
2.2.3 Notes
|
||||
2.2.4 Todo
|
||||
2.3 Examples in XML-RPC
|
||||
3 Conclusion
|
||||
3.1 Contacts:
|
||||
3.2 Schedule:
|
||||
3.3 Notes:
|
||||
3.4 Todo:
|
||||
|
||||
|
||||
|
||||
1 Scope
|
||||
|
||||
As many different opensource and freesoftware groupware systems
|
||||
are being developed, the full realization of the dream of
|
||||
a connected world must be prefaced by an agreement to interoperate.
|
||||
There are limited ways in which cooperation with commercial
|
||||
groupware systems may be achecived, the majority if not
|
||||
all of which were derived via the establishment of open
|
||||
standards. These might include email (POP3/IMAP), contacts(LDAP,vcard),
|
||||
or scheduling(ical/vcal). It is felt that while these have
|
||||
proven themselves to be very useful, they are insufficient
|
||||
to satisfy the real needs of a typical corporate environment.
|
||||
a connected world should be prefaced by an agreement to
|
||||
interoperate. There are limited ways in which cooperation
|
||||
with these and commercial groupware systems may be achecived,
|
||||
the majority if not all of which were derived via the establishment
|
||||
of open standards. These might include email (POP3/IMAP),
|
||||
contacts(LDAP,vcard), or scheduling(ical/vcal). It is felt
|
||||
that while these have proven themselves to be very useful,
|
||||
they are insufficient to satisfy the real needs of a typical
|
||||
business environment.
|
||||
|
||||
This document hopes to provide a reasonable recommendation
|
||||
for a set of standardized methods to be used for groupware
|
||||
services interaction. More specifically, it hopes to address
|
||||
the need for such a standard as well as to spur discussion
|
||||
about the common service names and methods themselves.
|
||||
This document hopes to provide a reasonable, if limited,
|
||||
recommendation for a set of standardized methods to be used
|
||||
for groupware services interaction. More specifically, it
|
||||
hopes to address the need for such a standard as well as
|
||||
to spur discussion about the common service names and methods
|
||||
themselves.
|
||||
|
||||
Examples will be given for implementations in XML-RPC, since
|
||||
this standard is relatively fixed and open.
|
||||
@ -49,7 +74,10 @@ They are:
|
||||
|
||||
These services are represented already in places such as
|
||||
existing groupware client-server applications and also in
|
||||
the PalmOS basic-4 buttons and applications.
|
||||
the PalmOS basic-4 buttons and applications. Different systems
|
||||
may have different names for these services internally,
|
||||
e.g. Contacts - addresses, addressbook, people, Schedule
|
||||
- calendar, agenda, meetings.
|
||||
|
||||
Within each of these services are some common methods that
|
||||
would be called to store, retreive, or update data:
|
||||
@ -85,7 +113,7 @@ not compliant with this service scheme or implementations
|
||||
thereof. It could also include individuals using web-based
|
||||
or local ISP email services. The scope of this document,
|
||||
however, is to define the service with regard to the common
|
||||
methods to be used:
|
||||
methods to be used for server-server and client-server communications:
|
||||
|
||||
* read_list
|
||||
|
||||
@ -212,18 +240,6 @@ vcard format):
|
||||
|
||||
</member>
|
||||
|
||||
<member><name>sort</name>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member><name>order</name>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</member>
|
||||
|
||||
</struct></value>
|
||||
|
||||
</param>
|
||||
|
@ -1,82 +0,0 @@
|
||||
XML-RPC for phpGroupWare
|
||||
Written by Joseph Engo <jengo@phpgroupware.org>
|
||||
|
||||
This document will give you a brief intro to the new XML-RPC calls to phpGroupWare. The older pure PHP XML-RPC classes where cumbersome, slow, and had quite a number of issues with parameters and returns not meeting XML-RPC specs.
|
||||
|
||||
This document is broken down into 2 main sections, for developers of applications in phpGroupWare and developers who are writing applications to connect to phpGroupWare via XML-RPC. Keep in mind, I suck at writing docs, so this doc is quick and to the point.
|
||||
|
||||
|
||||
For phpGroupWare developers:
|
||||
Before you can port your applications to utilize the XML-RPC features of phpGroupWare, you must follow these rules in order for things to work correctly.
|
||||
- ALL functions must have a return of some type. This is a rule for XML-RPC in general. If you are unsure what to use, the simple Boolean value of True will work.
|
||||
- Your class must have an array (described bellow) showing what functions are made available through XML-RPC. Only allow functions that the client NEEDS to use.
|
||||
- Your method can NOT print out any direct output. No HTML, XML, etc. Errors must be reported using xmlrpc_error().
|
||||
- Do NOT add any redirects within the function. Header(), $phpgw->redirect() are not acceptable and can lead to a number of issues.
|
||||
|
||||
Each class, needs to have an array describing what methods are made available in that class. The required fields are, name and description. Other values might be made a requirement in the future. The other values, such as developer, are recommended.
|
||||
|
||||
class bofoo
|
||||
{
|
||||
var $xmlrpc_methods = array();
|
||||
|
||||
function bofoo()
|
||||
{
|
||||
$this->xmlrpc_methods[] = array(
|
||||
?name? => ?add?
|
||||
?description? => ?Add an entry?
|
||||
);
|
||||
}
|
||||
|
||||
function add()
|
||||
{
|
||||
return True;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Description of the xmlrpc_methods array:
|
||||
name: Function name to be called.
|
||||
description: Brief description of what the function does
|
||||
author: List of authors who wrote the function.
|
||||
(More to be added soon)
|
||||
|
||||
Error reporting:
|
||||
xmlrpc_error() is created to report errors that have happened during that execution. The errors returned are errors unless they are state change errors.
|
||||
|
||||
1001: State change - session expired, server not accepting new connections, server down for maintaince, etc. These aren?t show stopper errors, but report that calling more methods isn?t possible.
|
||||
1002: Notices ? An example of this would be a function not returning a value, or other errors that can mean things can continue, but should be fixed.
|
||||
1003: Warning ? An example of this would be an SQL error, care should be taken with the results.
|
||||
1004: Error ? Invailed parameters, wrong parameter count, invailed parameter data, wrong parameter types, etc. (Not finished)
|
||||
1005: PHP error ? These are errors generated by PHP, can be anything from parse errors, to include failures, calling an undefined function, etc.
|
||||
|
||||
|
||||
For the XML-RPC client side developer:
|
||||
This is for developers who are writing applications to connect to a phpGroupWare server via XML-RPC. Currently, there isn?t a list of all the methods available.
|
||||
|
||||
system.login ? This is generally the first method you need to call. This will return the sessionid and kp3. It will return a 1001 error if the login failed. The faultString will explain why it failed. The faultString should always be written in English. Example: Session expired, Access not permited and Login failed.
|
||||
system.logout ? This will destroy the current session. This should always be called once you are finished with your session.
|
||||
|
||||
Calling application level methods should work as follows. <application name>.<class>.<method> Example: messenger.bomessenger.read_inbox
|
||||
|
||||
Besides the defined methods, there are also listMethods and describeMethods. They are ONLY available to the application you are requesting and have access to. messenger.bomessenger.listMethods will not list infolog.boinfolog.readIdArray since you aren?t accessing infolog. You can ONLY call listMethods for an application you have access to. (This might be subject to change)
|
||||
When calling /xmlrpc.php, you will need to pass the sessionid and kp3 using the HTTP_AUTH headers. You can also call it like: http://<sessionid>:<kp3>@www.mydomain.com/phpgroupware/xmlrpc.php
|
||||
|
||||
The username should be the sessionid, and the password should be kp3. Both are required and will fail if not present. If kp3 is incorrect, (if they have mcrypt / mhash installed and enabled) the session will fail to decrypt.
|
||||
|
||||
Passing the sessionid and kp3 to the method will be made available soon as another method for XML-RPC libraries which don?t support this kind of authentication. (Its not apart of the XML-RPC spec)
|
||||
|
||||
With the old XML-RPC classes the user would need to have access to the phpgwapi in order to access methods like, phpgwapi.applications.read This restriction has been removed with some exceptions. The phpGroupWare API is in read only mode when accessing it via XML-RPC. Meaning, creating accounts, adding / deleting applications, is not currently available. This will require permission checks from inside the function, rather then outside in the call wrapper. Not all methods are available, and care should be taken each time a method is enabled. The only ones enabled are the ones that are NEEDED to be enabled.
|
||||
|
||||
General information about the new xmlrpc.php file:
|
||||
In order to use this, you MUST have the epi xmlrpc libraries installed. They are bundled with newer versions of PHP, but require the --with-xmlrpc option enabled at ./configure time. These libraries are written in C, and are much faster then the old pure PHP version. Not to mention, they are also easier to use and work correctly.
|
||||
|
||||
xmlrpc_call_wrapper():
|
||||
I know lots of developers prefer not to use wrappers, but this one is required. When the function is called, the method name is the first parameter sent. Rather then require all developers to have this parameter first, and a single array as the actual parameters sent, this will filter and handle it.
|
||||
|
||||
Permissions are checked before the method is registered. If they can?t access an application, the application isn?t even registered. This will also return an error stating Access not permitted.
|
||||
|
||||
system.login is only registered when there is no sessionid and/or kp3 present.
|
||||
system.logout is only registered when there is a valied session present.
|
||||
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
/* $Id$ */
|
||||
|
||||
Perl interfacing to phpgroupware:
|
||||
Perl interfacing to egroupware:
|
||||
|
||||
The Frontier::RPC module available at CPAN is capable of logging into a
|
||||
phpgroupware server. To authenticate your session after the initial login,
|
||||
The Frontier::RPC module available at CPAN is capable of logging into an
|
||||
egroupware server. To authenticate your session after the initial login,
|
||||
however, requires a patch to Frontier. This patch causes Frontier to create
|
||||
an Authentication header using username/password values. We use the assigned
|
||||
sessionid and kp3 for this.
|
||||
@ -18,7 +18,7 @@ TODO:
|
||||
the Frontier source:
|
||||
|
||||
rpc-client.pl \
|
||||
http://www.phpgroupware.org/cvsdemo/xmlrpc.php \
|
||||
http://www.egroupware.org/egroupware/xmlrpc.php \
|
||||
system.login \
|
||||
"{domain => '',username => 'demo', password => 'guest'}"
|
||||
|
||||
@ -32,7 +32,7 @@ $result = HASH(0x826d4b0)
|
||||
5. Place these on the commandline for a new request:
|
||||
|
||||
rpc-client.pl \
|
||||
http://www.phpgroupware.org/cvsdemo/xmlrpc.php \
|
||||
http://www.egroupware.org/egroupware/xmlrpc.php \
|
||||
--username 36f9ec1e4ad78bxd8bc902b1c38d3e14 \
|
||||
--password e0219714614769x25bc92286016c60c2 \
|
||||
service.contacts.read \
|
||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
> phpGroupWare XML-RPC/SOAP Methodology
|
||||
> eGroupWare XML-RPC/SOAP Methodology
|
||||
</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
@ -21,7 +21,7 @@ CLASS="TITLEPAGE"
|
||||
CLASS="TITLE"
|
||||
><A
|
||||
NAME="AEN2"
|
||||
>phpGroupWare XML-RPC/SOAP Methodology</A
|
||||
>eGroupWare XML-RPC/SOAP Methodology</A
|
||||
></H1
|
||||
><H3
|
||||
CLASS="AUTHOR"
|
||||
@ -47,7 +47,7 @@ NAME="AEN10"
|
||||
>Login and authentication</A
|
||||
></H2
|
||||
><P
|
||||
> Authentication for user logins is handled internally no differently than for the typical phpGroupWare login via web browser. Server logins, added for XML-RPC and SOAP, are only slightly different. For either protocol, user and server login and authentication and subsequent requests are handled by their respective server apps, xmlrpc.php and soap.php. A server is identified by a custom HTTP header, without which a normal user login will be undertaken.
|
||||
> Authentication for user logins is handled internally no differently than for the typical eGroupWare login via web browser. Server logins, added for XML-RPC and SOAP, are only slightly different. For either protocol, user and server login and authentication and subsequent requests are handled by their respective server apps, xmlrpc.php and soap.php. A server is identified by a custom HTTP header, without which a normal user login will be undertaken.
|
||||
</P
|
||||
><P
|
||||
> A client or server sends the appropriate XML-RPC or SOAP packet containing host, user, and password information to the phpgw server. The server then assigns a sessionid and key, which is returned to the client in the appropriate format.
|
||||
@ -302,4 +302,4 @@ VALIGN="top"
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
||||
>
|
||||
|
@ -24,16 +24,16 @@
|
||||
|
||||
\layout Title
|
||||
|
||||
phpGroupWare XML-RPC/SOAP Methodology
|
||||
eGroupWare XML-RPC/SOAP Methodology
|
||||
\layout Author
|
||||
|
||||
Miles Lott
|
||||
(C) 2001-2004 Miles Lott
|
||||
\layout Author
|
||||
|
||||
milosch@phpgroupware.org
|
||||
milos@groupwhere.org
|
||||
\layout Date
|
||||
|
||||
August 23, 2001
|
||||
August 23, 2001 and December 29, 2003
|
||||
\layout Standard
|
||||
|
||||
additions made September 3, 2001.
|
||||
@ -49,7 +49,7 @@ Login and authentication
|
||||
\layout Standard
|
||||
|
||||
Authentication for user logins is handled internally no differently than
|
||||
for the typical phpGroupWare login via web browser.
|
||||
for the typical eGroupWare login via web browser.
|
||||
Server logins, added for XML-RPC and SOAP, are only slightly different.
|
||||
For either protocol, user and server login and authentication and subsequent
|
||||
requests are handled by their respective server apps, xmlrpc.php and soap.php.
|
||||
@ -701,7 +701,7 @@ More to come...
|
||||
|
||||
Documenting every single call will be difficult, but should be done.
|
||||
In leiu of this, please see the class.bo{APPNAME}.inc.php files in each applicatio
|
||||
n/inc directory in the phpgroupware cvs.
|
||||
n/inc directory in the egroupware cvs.
|
||||
In this file will be a list_methods() function, which returns the information
|
||||
to the server about input/output structure for each call.
|
||||
If the file does not have this function, then it is not yet workable via
|
||||
|
Binary file not shown.
@ -1,8 +1,7 @@
|
||||
%!PS-Adobe-2.0
|
||||
%%Creator: dvipsk 5.86 p1.5d Copyright 1996-2001 ASCII Corp.(www-ptex@ascii.co.jp)
|
||||
%%based on dvipsk 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
|
||||
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
|
||||
%%Title: phpgw_server.dvi
|
||||
%%Pages: 8
|
||||
%%Pages: 6
|
||||
%%PageOrder: Ascend
|
||||
%%BoundingBox: 0 0 612 792
|
||||
%%DocumentFonts: Helvetica-Bold Times-Roman Courier Times-Italic
|
||||
@ -10,7 +9,7 @@
|
||||
%DVIPSWebPage: (www.radicaleye.com)
|
||||
%DVIPSCommandLine: dvips -t letter -o phpgw_server.ps phpgw_server.dvi
|
||||
%DVIPSParameters: dpi=600, compressed
|
||||
%DVIPSSource: TeX output 2001.09.03:2156
|
||||
%DVIPSSource: TeX output 2003.12.28:0956
|
||||
%%BeginProcSet: texc.pro
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
@ -54,32 +53,32 @@ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
|
||||
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
|
||||
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
|
||||
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
|
||||
/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
|
||||
def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
|
||||
rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
|
||||
N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
|
||||
false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
|
||||
length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
|
||||
forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
|
||||
BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
|
||||
{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
|
||||
round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
|
||||
rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
|
||||
/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
|
||||
B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
|
||||
0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
|
||||
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
|
||||
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
|
||||
(LaserWriter 16/600)]{A length product length le{A length product exch 0
|
||||
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
|
||||
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
|
||||
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
|
||||
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
|
||||
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
|
||||
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
|
||||
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
|
||||
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
|
||||
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
|
||||
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
|
||||
|
||||
%%EndProcSet
|
||||
%%BeginProcSet: 8r.enc
|
||||
% @@psencodingfile@{
|
||||
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
|
||||
% version = "0.6",
|
||||
% date = "1 July 1998",
|
||||
% date = "22 June 1996",
|
||||
% filename = "8r.enc",
|
||||
% email = "tex-fonts@@tug.org",
|
||||
% docstring = "Encoding for TrueType or Type 1 fonts
|
||||
% to be used with TeX."
|
||||
% email = "kb@@mail.tug.org",
|
||||
% address = "135 Center Hill Rd. // Plymouth, MA 02360",
|
||||
% codetable = "ISO/ASCII",
|
||||
% checksum = "119 662 4424",
|
||||
% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
|
||||
% @}
|
||||
%
|
||||
% Idea is to have all the characters normally included in Type 1 fonts
|
||||
@ -107,8 +106,7 @@ B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
% upward-compatible revisions, if someday more characters are generally
|
||||
% available.
|
||||
%
|
||||
% (5) hyphen appears twice for compatibility with both
|
||||
% ASCII and Windows.
|
||||
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
|
||||
%
|
||||
/TeXBase1Encoding [
|
||||
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
|
||||
@ -126,7 +124,7 @@ B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
/.notdef /.notdef /.notdef /.notdef
|
||||
/.notdef /.notdef /.notdef /.notdef
|
||||
% very contentious; it's so painful not having quoteleft and quoteright
|
||||
% at 96 and 145 that we move the things normally found there to here.
|
||||
% at 96 and 145 that we move the things normally found there down to here.
|
||||
/grave /quotesingle
|
||||
% 0x20 (ASCII begins)
|
||||
/space /exclam /quotedbl /numbersign
|
||||
@ -197,15 +195,15 @@ B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
|
||||
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
|
||||
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
|
||||
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
|
||||
exch def dict begin 0 1 255{exch dup type/integertype ne{pop pop 1 sub
|
||||
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
|
||||
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
|
||||
ifelse}for Metrics/Metrics currentdict end def[2 index currentdict end
|
||||
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
|
||||
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
|
||||
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
|
||||
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
|
||||
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
|
||||
end
|
||||
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
|
||||
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
|
||||
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
|
||||
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
|
||||
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
|
||||
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
|
||||
def end
|
||||
|
||||
%%EndProcSet
|
||||
%%BeginProcSet: special.pro
|
||||
@ -316,34 +314,32 @@ setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
|
||||
|
||||
%%EndProcSet
|
||||
TeXDict begin 40258431 52099146 1000 600 600 (phpgw_server.dvi)
|
||||
@start /Fa 134[ 37 3[ 42 23 1[ 32 1[ 42 42 2[ 23 3[ 42
|
||||
42 1[ 37 42 2[ 42 8[ 51 69 3[ 42 51 1[ 51 60 1[ 69 46
|
||||
4[ 60 3[ 55 1[ 51 8[ 42 42 42 42 42 42 42 42 1[ 23 1[ 28
|
||||
45[{ TeXBase1Encoding ReEncodeFont} 33 83.022 /Times-Italic
|
||||
rf /Fb 133[ 45 45 45 45 45 45 45 45 45 45 45 45 45 45
|
||||
45 45 45 45 45 45 45 45 45 45 45 45 1[ 45 4[ 45 45 45
|
||||
45 45 45 45 45 45 45 45 45 45 45 45 2[ 45 45 45 1[ 45
|
||||
45 45 45 45 1[ 45 45 45 45 1[ 45 45 45 45 45 45 45 45
|
||||
45 45 45 45 45 45 10[ 45 34[{ TeXBase1Encoding ReEncodeFont} 69
|
||||
74.7198 /Courier rf /Fc 134[ 55 3[ 61 33 55 3[ 61 61
|
||||
89 28 2[ 28 1[ 61 1[ 55 50[ 55 55 2[ 28 46[{
|
||||
TeXBase1Encoding ReEncodeFont} 14 99.6264 /Helvetica-Bold
|
||||
rf /Fd 130[ 40 1[ 40 37 42 42 60 42 42 23 32 28 42 42
|
||||
42 42 65 23 42 1[ 23 42 42 28 37 42 37 42 37 1[ 42 6[ 60
|
||||
78 1[ 60 51 46 55 1[ 46 60 60 74 51 2[ 28 60 60 46 51
|
||||
60 55 55 60 6[ 23 3[ 42 1[ 42 42 3[ 23 21 28 21 2[ 28
|
||||
28 28 2[ 42 32[ 46 46 2[{ TeXBase1Encoding ReEncodeFont} 62
|
||||
83.022 /Times-Roman rf /Fe 138[ 73 40 4[ 73 73 4[ 33
|
||||
73 73 1[ 66 73 66 1[ 66 20[ 73 26[ 66 2[ 33 46[{
|
||||
TeXBase1Encoding ReEncodeFont} 14 119.552 /Helvetica-Bold
|
||||
rf /Ff 134[ 80 2[ 80 88 48 80 56 88 1[ 88 88 128 40 2[ 40
|
||||
3[ 80 1[ 80 1[ 80 13[ 96 5[ 120 10[ 104 14[ 80 80 80
|
||||
2[ 40 46[{ TeXBase1Encoding ReEncodeFont} 22 143.462
|
||||
/Helvetica-Bold rf /Fg 134[ 115 3[ 126 69 1[ 80 1[ 126
|
||||
126 2[ 57 3[ 126 126 1[ 115 126 2[ 115 8[ 138 195 3[ 138
|
||||
149 1[ 138 161 1[ 172 126 4[ 161 3[ 149 1[ 149 17[ 57
|
||||
1[ 69 45[{ TeXBase1Encoding ReEncodeFont} 25 206.584
|
||||
/Helvetica-Bold rf end
|
||||
@start /Fa 134[37 3[42 23 1[32 1[42 42 2[23 3[42 42 1[37
|
||||
42 2[42 8[51 69 3[42 51 1[51 60 1[69 46 4[60 3[55 1[51
|
||||
10[42 42 42 42 42 42 1[23 1[28 45[{TeXBase1Encoding ReEncodeFont}31
|
||||
83.022 /Times-Italic rf /Fb 133[45 45 45 45 45 45 45
|
||||
45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
|
||||
45 1[45 4[45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
|
||||
2[45 45 45 1[45 45 45 45 45 1[45 45 45 45 1[45 45 45
|
||||
45 45 45 45 45 45 45 45 45 45 45 10[45 34[{
|
||||
TeXBase1Encoding ReEncodeFont}69 74.7198 /Courier rf
|
||||
/Fc 134[46 3[51 28 46 3[51 51 74 23 2[23 1[51 1[46 50[46
|
||||
46 2[23 46[{TeXBase1Encoding ReEncodeFont}14 83.022 /Helvetica-Bold
|
||||
rf /Fd 130[40 1[40 37 42 42 60 42 42 23 32 28 42 42 42
|
||||
42 65 23 42 1[23 42 42 28 37 42 37 42 37 1[42 6[60 78
|
||||
1[60 51 46 55 1[46 60 60 74 51 2[28 60 60 46 51 60 55
|
||||
55 60 6[23 3[42 1[42 42 3[23 21 28 21 2[28 28 28 2[42
|
||||
32[46 46 2[{TeXBase1Encoding ReEncodeFont}62 83.022 /Times-Roman
|
||||
rf /Fe 138[61 33 4[61 61 4[28 61 61 1[55 61 55 1[55 20[61
|
||||
26[55 2[28 46[{TeXBase1Encoding ReEncodeFont}14 99.6264
|
||||
/Helvetica-Bold rf /Ff 134[66 2[66 73 40 66 47 73 1[73
|
||||
73 106 33 2[33 3[66 1[66 1[66 13[80 5[100 10[86 14[66
|
||||
66 66 2[33 46[{TeXBase1Encoding ReEncodeFont}22 119.552
|
||||
/Helvetica-Bold rf /Fg 134[115 3[126 69 1[80 1[126 126
|
||||
2[57 3[126 126 1[115 126 2[115 8[138 195 3[138 149 1[138
|
||||
161 1[172 126 4[161 3[149 1[149 17[57 1[69 45[{
|
||||
TeXBase1Encoding ReEncodeFont}25 206.584 /Helvetica-Bold
|
||||
rf end
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%Feature: *Resolution 600dpi
|
||||
@ -354,249 +350,218 @@ letter
|
||||
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
1 0 bop Black 0 TeXcolorgray Black Black Fg 579 647 a(phpGr) l(oupW) -8
|
||||
b(are) 58 b(XML-RPC/SO) -10 b(AP) 1497 915 y(Methodolog) r(y) p
|
||||
Ff -2 1382 a(1.) 39 b(System) f(le) n(vel) h(request) n(s) p
|
||||
Fe -2 1710 a(1.1.) 34 b(Login) g(and) g(authentica) r(tion) p
|
||||
Fd 396 1878 a(Authenticatio) n(n) 20 b(for) g(user) g(logins) g(is) h
|
||||
(hand) n(led) g(intern) n(ally) g(no) e(dif) n(feren) n(tly) h(than) g
|
||||
(for) g(the) g(typical) g(php) n(Group) n(W) -7 b(are) 396
|
||||
1986 y(login) 20 b(via) g(web) g(bro) n(wser) -7 b(.) 21
|
||||
b(Serv) o(er) e(logins,) h(added) f(for) h(XML-RPC) g(and) g(SO) m(AP)
|
||||
-9 b(,) 21 b(are) f(only) f(slightly) h(dif) n(fer) n(ent.) g(F) o(or)
|
||||
396 2094 y(either) g(proto) n(col,) g(user) g(and) g(serv) o(er) f
|
||||
(login) h(and) f(authenticatio) n(n) i(and) e(subsequen) n(t) i(requ) n
|
||||
(ests) h(are) e(hand) n(led) g(by) g(their) 396 2202
|
||||
y(respecti) n(v) o(e) f(serv) o(er) h(app) n(s,) h(xmlrpc) n(.php) f
|
||||
(and) f(soap.ph) n(p.) h(A) h(serv) o(er) e(is) i(identi\002ed) f(by) f
|
||||
(a) i(custom) f(HTTP) g(header) -5 b(,) 396 2309 y(without) 20
|
||||
b(which) f(a) i(norm) n(al) g(user) f(login) f(will) i(be) g(und) n
|
||||
(ertak) o(en.) 396 2459 y(A) g(client) f(or) g(serv) o(er) f(sends) i
|
||||
(the) f(appr) n(opriate) g(XML-RPC) g(or) g(SO) m(AP) h(pack) o(et) f
|
||||
(contain) n(ing) g(host,) g(user) m(,) g(and) f(passw) o(ord) 396
|
||||
2567 y(inform) n(ation) h(to) g(the) h(php) n(gw) f(serv) o(er) -5
|
||||
b(.) 20 b(The) g(serv) o(er) f(then) h(assigns) g(a) h(sessionid) f
|
||||
(and) g(k) o(e) o(y) -5 b(,) 19 b(which) g(is) j(retur) n(ned) e(to) g
|
||||
(the) 396 2675 y(client) g(in) h(the) f(appro) n(priate) g(form) n(at.)
|
||||
396 2824 y(Our) g(curren) n(t) h(method) e(for) g(authenticatin) n(g) i
|
||||
(requ) n(ests) g(after) f(successful) g(login) g(is) h(via) f(the) g
|
||||
(Author) n(ization:) g(Basic) 396 2932 y(HTTP) g(header) f(to) i(be) f
|
||||
(sent) g(by) g(the) g(client) g(or) f(requesting) g(serv) o(er) -7
|
||||
b(.) 21 b(The) f(form) n(at) h(of) f(this) g(header) f(is) i(a) g
|
||||
(base64) e(encod) n(ing) 396 3040 y(of) h(the) g(assigned) g(sessionid)
|
||||
g(and) g(kp3) f(v) n(ariables,) g(seperated) h(by) f(a) i(':'.) 396
|
||||
3189 y(Further) e(security) h(may) g(be) g(obtain) n(ed) h(by) e(using)
|
||||
h(SSL) h(on) f(the) g(client) g(and) g(serv) o(er) -7
|
||||
b(.) 21 b(In) f(the) g(future,) f(we) i(may) 396 3297
|
||||
y(encryp) n(t/descrypt) e(the) i(data) f(on) f(either) h(end,) g(or) g
|
||||
(at) g(least) h(pro) o(v) n(ide) f(this) h(as) g(an) f(option) n(.) h
|
||||
(The) f(sessionid) g(and) f(k) o(e) o(y) 396 3405 y(v) n(ariables) h
|
||||
(will) h(mak) o(e) e(this) i(possible,) f(and) f(relati) n(v) o(ely) g
|
||||
(secure.) p Fc 396 3693 a(1.1.1.) 28 b(syst) r(em.logi) n(n) p
|
||||
Fd 396 3850 a(The) 20 b(\002rst) h(reque) n(st) h(a) e(client) g(will) h
|
||||
(mak) o(e) f(is) h(the) f(system.login) f(method) n(.) i(Here) f(is) h
|
||||
(a) g(sample) f(of) g(a) g(serv) o(er) f(login) h(pack) o(et) 396
|
||||
3958 y(in) h(XML-RPC:) p Fb 396 4138 a(<?xml) 44 b(version="1.) n(0"?>)
|
||||
396 4236 y(<methodCall) n(>) 396 4333 y(<methodName) n(>system.logi) n
|
||||
(n</methodNam) n(e>) 396 4430 y(<params>) 396 4527 y(<param>) 396
|
||||
4624 y(<value><str) n(uct>) 396 4721 y(<member><na) n(me>server_na) n
|
||||
(me</name>) 396 4818 y(<value><str) n(ing>my.host.) n(name</string) n
|
||||
(></value>) p Black Fa 3842 5278 a(1) p Black 90 rotate
|
||||
dyy eop
|
||||
1 0 bop Black 0 TeXcolorgray Black Black 711 140 a Fg(eGr)l(oupW)-8
|
||||
b(are)57 b(XML-RPC/SO)-10 b(AP)1497 409 y(Methodology)-2
|
||||
826 y Ff(1.)34 b(System)g(le)n(vel)h(requests)396 1114
|
||||
y Fe(1.1.)28 b(Login)f(and)h(authentication)396 1271
|
||||
y Fd(Authentication)18 b(for)i(user)g(logins)g(is)h(handled)e
|
||||
(internally)g(no)g(dif)n(ferently)f(than)i(for)g(the)g(typical)g
|
||||
(eGroupW)-7 b(are)19 b(login)396 1379 y(via)h(web)h(bro)n(wser)-5
|
||||
b(.)19 b(Serv)o(er)g(logins,)h(added)f(for)g(XML-RPC)i(and)f(SO)m(AP)-9
|
||||
b(,)20 b(are)g(only)g(slightly)f(dif)n(ferent.)g(F)o(or)h(either)396
|
||||
1487 y(protocol,)e(user)j(and)e(serv)o(er)h(login)f(and)h
|
||||
(authentication)e(and)h(subsequent)g(requests)h(are)g(handled)f(by)g
|
||||
(their)396 1595 y(respecti)n(v)o(e)g(serv)o(er)h(apps,)f(xmlrpc.php)f
|
||||
(and)h(soap.php.)f(A)j(serv)o(er)e(is)i(identi\002ed)f(by)f(a)i(custom)
|
||||
f(HTTP)g(header)m(,)396 1703 y(without)g(which)f(a)i(normal)e(user)h
|
||||
(login)f(will)i(be)g(undertak)o(en.)396 1853 y(A)g(client)f(or)g(serv)o
|
||||
(er)f(sends)i(the)f(appropriate)e(XML-RPC)i(or)g(SO)m(AP)h(pack)o(et)f
|
||||
(containing)e(host,)i(user)m(,)g(and)f(passw)o(ord)396
|
||||
1961 y(information)f(to)i(the)h(phpgw)d(serv)o(er)-5
|
||||
b(.)20 b(The)g(serv)o(er)f(then)h(assigns)g(a)h(sessionid)f(and)g(k)o
|
||||
(e)o(y)-5 b(,)19 b(which)g(is)j(returned)c(to)i(the)396
|
||||
2068 y(client)g(in)h(the)f(appropriate)e(format.)396
|
||||
2218 y(Our)i(current)f(method)g(for)g(authenticating)g(requests)g
|
||||
(after)h(successful)g(login)g(is)h(via)f(the)g(Authorization:)e(Basic)
|
||||
396 2326 y(HTTP)i(header)f(to)i(be)f(sent)g(by)g(the)g(client)g(or)f
|
||||
(requesting)g(serv)o(er)-5 b(.)19 b(The)h(format)f(of)h(this)g(header)f
|
||||
(is)i(a)g(base64)e(encoding)396 2434 y(of)h(the)g(assigned)g(sessionid)
|
||||
g(and)g(kp3)f(v)n(ariables,)g(seperated)h(by)f(a)i(':'.)396
|
||||
2583 y(Further)e(security)h(may)g(be)g(obtained)f(by)g(using)h(SSL)h
|
||||
(on)f(the)g(client)g(and)g(serv)o(er)-5 b(.)19 b(In)h(the)g(future,)f
|
||||
(we)i(may)396 2691 y(encrypt/descrypt)c(the)k(data)f(on)f(either)h
|
||||
(end,)g(or)g(at)g(least)h(pro)o(vide)d(this)j(as)g(an)f(option.)f(The)h
|
||||
(sessionid)g(and)f(k)o(e)o(y)396 2799 y(v)n(ariables)h(will)h(mak)o(e)e
|
||||
(this)i(possible,)f(and)f(relati)n(v)o(ely)g(secure.)396
|
||||
3052 y Fc(1.1.1.)24 b(system.login)396 3202 y Fd(The)c(\002rst)h
|
||||
(request)f(a)g(client)g(will)h(mak)o(e)f(is)h(the)f(system.login)f
|
||||
(method.)g(Here)h(is)h(a)g(sample)f(of)g(a)g(serv)o(er)f(login)h(pack)o
|
||||
(et)396 3310 y(in)h(XML-RPC:)396 3490 y Fb(<?xml)44 b(version="1.0"?>)
|
||||
396 3587 y(<methodCall>)396 3684 y
|
||||
(<methodName>system.login</methodName>)396 3781 y(<params>)396
|
||||
3878 y(<param>)396 3976 y(<value><struct>)396 4073 y
|
||||
(<member><name>server_name</name>)396 4170 y
|
||||
(<value><string>my.host.name</string></val)o(ue>)396
|
||||
4267 y(</member>)396 4364 y(<member><name>username</name>)396
|
||||
4461 y(<value><string>bubba</string></value>)396 4558
|
||||
y(</member>)396 4655 y(<member><name>password</name>)396
|
||||
4753 y(<value><string>gump</string></value>)396 4850
|
||||
y(</member>)g(</struct></value>)396 4947 y(</param>)396
|
||||
5044 y(</params>)396 5141 y(</methodCall>)p Black 3842
|
||||
5638 a Fa(1)p Black eop
|
||||
%%Page: 2 2
|
||||
2 1 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fb 396 579 a(</member>) 396 676 y(<member><na) n(me>username<) n
|
||||
(/name>) 396 773 y(<value><str) n(ing>bubba</s) n(tring></valu) n(e>)
|
||||
396 870 y(</member>) 396 967 y(<member><na) n(me>password<) n(/name>)
|
||||
396 1065 y(<value><str) n(ing>gump</st) n(ring></value) n(>) 396
|
||||
1162 y(</member>) 44 b(</struc) n(t></value>) 396 1259
|
||||
y(</param>) 396 1356 y(</params>) 396 1453 y(</methodCal) n(l>) p
|
||||
Fd 396 1741 a(And) 20 b(the) g(same) h(in) f(SO) m(AP:) p
|
||||
Fb 396 1921 a(<?xml) 44 b(version="1.) n(0"?>) 396 2019
|
||||
y(<SOAP-ENV:E) n(nvelope) 396 2116 y(xmlns:SOAP-) n(ENV="http://) n
|
||||
(schemas.xmls) n(oap.org/soap) n(/envelope/") f(xmlns:xsi=") n
|
||||
(http://www.w) n(3.org/1999/X) n(MLSchema-) 396 2213
|
||||
y(instance") h(xmlns:x) n(sd="http://w) n(ww.w3.org/19) n(99/XMLSchema)
|
||||
n(") h(xmlns:SOAP) n(-ENC="http:) n(//schemas.xm) n(lsoap.org/so) n
|
||||
(ap/encoding/) n(") g(xmlns:si=") n(http://soapi) n(nterop.org/x) n
|
||||
(sd") 396 2310 y(xmlns:ns6=") n(http://soapi) n(nterop.org") e
|
||||
(SOAP-ENV:enc) n(odingStyle=") n(http://sche) n(mas.xmlsoap.) n
|
||||
(org/soap/enc) n(oding/">) 396 2407 y(<SOAP-ENV:B) n(ody>) i(<ns6:sy) n
|
||||
(stem_login>) 396 2504 y(<server_nam) n(e) g(xsi:type=") n
|
||||
(:string">my.) n(host.name</s) n(erver_name>) 396 2601
|
||||
y(<username) f(xsi:typ) n(e=":string">) n(bubba</usern) n(ame>) 396
|
||||
2698 y(<password) g(xsi:typ) n(e=":string">) n(gump</passwo) n(rd>) 396
|
||||
2796 y(</ns6:syste) n(m_login>) 396 2893 y(</SOAP-ENV:) n(Body>) 396
|
||||
2990 y(</SOAP-ENV:) n(Envelope>) p Fd 396 3278 a(The) 20
|
||||
b(same) g(style) h(of) f(pack) o(et) g(w) o(ould) f(be) h(requir) n(ed)
|
||||
h(for) e(a) i(user/client) e(login.) h(A) g(successful) g(login) g
|
||||
(should) f(yield) h(the) 396 3386 y(follo) n(wing) f(reply) n(:) p
|
||||
Fb 396 3566 a(<methodResp) n(onse>) 396 3663 y(<params>) 396
|
||||
3760 y(<param>) 396 3857 y(<value><str) n(uct>) 396 3955
|
||||
y(<member><na) n(me>sessionid) n(</name>) 396 4052 y(<value><str) n
|
||||
(ing>cf5c5534) n(307562fc5791) n(5608377db007) n(</string></v) n(alue>)
|
||||
396 4149 y(</member>) 396 4246 y(<member><na) n(me>kp3</name) n(>) 396
|
||||
4343 y(<value><str) n(ing>2fe54daa) n(11c8d5211678) n(8aa3f93cb70e) n
|
||||
(</string></v) n(alue>) 396 4440 y(</member>) 396 4537
|
||||
y(</struct></) n(value>) 396 4635 y(</param>) 396 4732
|
||||
y(</params>) 396 4829 y(</methodRes) n(ponse>) p Black
|
||||
Fa 3842 5278 a(2) p Black 90 rotate dyy eop
|
||||
2 1 bop Black 0 TeXcolorgray Black 2413 -132 a Fa(eGr)l(oupW)-8
|
||||
b(ar)m(e)20 b(XML-RPC/SO)-5 b(AP)20 b(Methodolo)o(gy)p
|
||||
Black 396 263 a Fd(And)g(the)g(same)h(in)f(SO)m(AP:)396
|
||||
444 y Fb(<?xml)44 b(version="1.0"?>)396 541 y(<SOAP-ENV:Envelope)396
|
||||
638 y(xmlns:SOAP-ENV="http://schemas.xmlsoap.or)o(g/soap)o(/envel)o
|
||||
(ope/")38 b(xmlns:xsi="http://www.w3.org/1999/XMLSche)o(ma-ins)o
|
||||
(tance")g(xmlns:xsd="http://www.w3.org/1999/XMLSche)o(ma")h
|
||||
(xmlns:SOAP-ENC="http://schemas.xmlsoa)o(p.org/)o(soap/e)o(ncodin)o
|
||||
(g/")g(xmlns:si="http://soapinterop.org/xsd")396 735
|
||||
y(xmlns:ns6="http://soapinterop.org")g
|
||||
(SOAP-ENV:encodingStyle="http://schemas.xm)o(lsoap.)o(org/so)o(ap/enc)o
|
||||
(oding/)o(">)396 832 y(<SOAP-ENV:Body>)k(<ns6:system_login>)396
|
||||
929 y(<server_name)g(xsi:type=":string">my.host.name</server_)o(name>)
|
||||
396 1026 y(<username)h(xsi:type=":string">bubba</username>)396
|
||||
1124 y(<password)g(xsi:type=":string">gump</password>)396
|
||||
1221 y(</ns6:system_login>)396 1318 y(</SOAP-ENV:Body>)396
|
||||
1415 y(</SOAP-ENV:Envelope>)396 1703 y Fd(The)20 b(same)g(style)h(of)f
|
||||
(pack)o(et)g(w)o(ould)f(be)h(required)f(for)g(a)i(user/client)e(login.)
|
||||
h(A)g(successful)g(login)g(should)f(yield)h(the)396 1811
|
||||
y(follo)n(wing)f(reply:)396 1991 y Fb(<methodResponse>)396
|
||||
2088 y(<params>)396 2185 y(<param>)396 2283 y(<value><struct>)396
|
||||
2380 y(<member><name>sessionid</name>)396 2477 y
|
||||
(<value><string>cf5c5534307562fc5791560837)o(7db007)o(</stri)o(ng></v)o
|
||||
(alue>)396 2574 y(</member>)396 2671 y(<member><name>kp3</name>)396
|
||||
2768 y(<value><string>2fe54daa11c8d52116788aa3f9)o(3cb70e)o(</stri)o
|
||||
(ng></v)o(alue>)396 2865 y(</member>)396 2962 y(</struct></value>)396
|
||||
3060 y(</param>)396 3157 y(</params>)396 3254 y(</methodResponse>)396
|
||||
3542 y Fd(And)h(a)h(f)o(ailed)f(login:)396 3722 y Fb(<methodResponse>)
|
||||
396 3819 y(<params>)396 3916 y(<param>)396 4014 y(<value><struct>)396
|
||||
4111 y(<member><name>GOAWAY</name>)396 4208 y
|
||||
(<value><string>XOXO</string></value>)396 4305 y(</member>)396
|
||||
4402 y(</struct></value>)396 4499 y(</param>)396 4596
|
||||
y(</params>)396 4693 y(</methodResponse>)396 4982 y Fd(eqweqw)p
|
||||
Black 3842 5569 a Fa(2)p Black eop
|
||||
%%Page: 3 3
|
||||
3 2 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fd 396 770 a(And) g(a) h(f) o(ailed) f(login) n(:) p
|
||||
Fb 396 950 a(<methodResp) n(onse>) 396 1047 y(<params>) 396
|
||||
1144 y(<param>) 396 1241 y(<value><str) n(uct>) 396 1339
|
||||
y(<member><na) n(me>GOAWAY</n) n(ame>) 396 1436 y(<value><str) n
|
||||
(ing>XOXO</st) n(ring></value) n(>) 396 1533 y(</member>) 396
|
||||
1630 y(</struct></) n(value>) 396 1727 y(</param>) 396
|
||||
1824 y(</params>) 396 1921 y(</methodRes) n(ponse>) p
|
||||
Fd 396 2209 a(eqweqw) p Fc 396 2547 a(1.1.2.) 28 b(syst) r(em.logou) n
|
||||
(t) p Fd 396 2704 a(Logou) n(t:) p Fb 396 2884 a(<?xml) 44
|
||||
b(version="1.) n(0"?>) 396 2982 y(<methodCall) n(>) 396
|
||||
3079 y(<methodName) n(>system.logo) n(ut</methodNa) n(me>) 396
|
||||
3176 y(<params>) g(<param>) 396 3273 y(<value><str) n(uct>) 396
|
||||
3370 y(<member><na) n(me>sessionid) n(</name>) 396 3467
|
||||
y(<value><str) n(ing>ea35cac5) n(3d2c12bd05ca) n(ecd97304478a) n
|
||||
(</string></v) n(alue>) 396 3564 y(</member>) 396 3662
|
||||
y(<member><na) n(me>kp3</name) n(>) 396 3759 y(<value><str) n
|
||||
(ing>4f2b256e) n(0da4e7cbbeba) n(ac9f1fc8ca4a) n(</string></v) n(alue>)
|
||||
396 3856 y(</member>) 396 3953 y(</struct></) n(value>) 396
|
||||
4050 y(</param>) 396 4147 y(</params>) 396 4244 y(</methodCal) n(l>) p
|
||||
Fd 396 4532 a(Logou) n(t) 21 b(w) o(ork) o(ed) n(:) p
|
||||
Fb 396 4713 a(<methodResp) n(onse>) 396 4810 y(<params>) p
|
||||
Black Fa 3842 5278 a(3) p Black 90 rotate dyy eop
|
||||
3 2 bop Black 0 TeXcolorgray Black 2413 -132 a Fa(eGr)l(oupW)-8
|
||||
b(ar)m(e)20 b(XML-RPC/SO)-5 b(AP)20 b(Methodolo)o(gy)p
|
||||
Black 396 72 a Fc(1.1.2.)k(system.logout)396 222 y Fd(Logout:)396
|
||||
402 y Fb(<?xml)44 b(version="1.0"?>)396 499 y(<methodCall>)396
|
||||
596 y(<methodName>system.logout</methodName>)396 693
|
||||
y(<params>)g(<param>)396 791 y(<value><struct>)396 888
|
||||
y(<member><name>sessionid</name>)396 985 y
|
||||
(<value><string>ea35cac53d2c12bd05caecd973)o(04478a)o(</stri)o(ng></v)o
|
||||
(alue>)396 1082 y(</member>)396 1179 y(<member><name>kp3</name>)396
|
||||
1276 y(<value><string>4f2b256e0da4e7cbbebaac9f1f)o(c8ca4a)o(</stri)o
|
||||
(ng></v)o(alue>)396 1373 y(</member>)396 1471 y(</struct></value>)396
|
||||
1568 y(</param>)396 1665 y(</params>)396 1762 y(</methodCall>)396
|
||||
2050 y Fd(Logout)19 b(w)o(ork)o(ed:)396 2230 y Fb(<methodResponse>)396
|
||||
2327 y(<params>)396 2424 y(<param>)396 2522 y(<value><struct>)396
|
||||
2619 y(<member><name>GOODBYE</name>)396 2716 y
|
||||
(<value><string>XOXO</string></value>)396 2813 y(</member>)396
|
||||
2910 y(</struct></value>)396 3007 y(</param>)396 3104
|
||||
y(</params>)396 3202 y(</methodResponse>)-2 3876 y Ff(2.)34
|
||||
b(Business)h(la)n(y)o(er)f(requests)396 4044 y Fd(Once)20
|
||||
b(a)h(successful)f(login)f(return)g(pack)o(et)h(has)g(been)g(recei)n(v)
|
||||
o(ed)e(and)i(sessionid/kp3)f(ha)n(v)o(e)g(been)h(e)o(xtracted,)e(e)n(v)
|
||||
o(ery)396 4152 y(subsequent)h(pack)o(et)g(sent)h(to)g(the)g(phpgroupw)o
|
||||
(are)c(serv)o(er)j(must)h(be)g(preceded)e(by)h(an)h(Authorization)d
|
||||
(header)-5 b(.)19 b(Here)h(is)396 4259 y(a)h(sample)f(header:)396
|
||||
4440 y Fb(POST)44 b(/phpgroupware/xmlrpc.php)d(HTTP/1.0)396
|
||||
4537 y(User-Agent:)i(PHP)i(XMLRPC)e(1.0)396 4634 y(Host:)h
|
||||
(my.local.host)396 4731 y(Authorization:)f(Basic)h
|
||||
(ZDgxNDIyZDRkYjg5NDEyNGNiMzZlMDhhZTdlYz)o(AxZmY6)o(NTU3Y)o(zkyYjB)o
|
||||
(mNGE4Z)o(DVlOTU)o(zMzI2Y)o(mU2OTQ)o(yNjM3Y)o(jQ=)396
|
||||
4828 y(Content-Type:)f(text/xml)396 4925 y(Content-Length:)g(875)p
|
||||
Black 3842 5569 a Fa(3)p Black eop
|
||||
%%Page: 4 4
|
||||
4 3 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fb 396 579 a(<param>) 396 676 y(<value><str) n(uct>) 396
|
||||
773 y(<member><na) n(me>GOODBYE</) n(name>) 396 870 y(<value><str) n
|
||||
(ing>XOXO</st) n(ring></value) n(>) 396 967 y(</member>) 396
|
||||
1065 y(</struct></) n(value>) 396 1162 y(</param>) 396
|
||||
1259 y(</params>) 396 1356 y(</methodRes) n(ponse>) p
|
||||
Ff -2 2079 a(2.) 39 b(Busines) n(s) h(la) m(y) o(er) f(requ) n(ests) p
|
||||
Fd 396 2259 a(Once) 20 b(a) h(successful) f(login) f(return) g(pack) o
|
||||
(et) h(has) g(been) g(recei) n(v) o(e) n(d) g(and) g(sessionid/kp3) f
|
||||
(ha) n(v) o(e) g(been) h(e) o(xtracte) n(d,) g(e) n(v) o(ery) 396
|
||||
2367 y(subsequen) n(t) h(pack) m(et) g(sent) f(to) g(the) g(php) n
|
||||
(group) n(w) o(are) g(serv) o(er) f(must) h(be) g(prec) n(eded) g(by) f
|
||||
(an) h(Autho) n(rization) f(header) -5 b(.) 19 b(Here) h(is) 396
|
||||
2475 y(a) h(sample) f(heade) n(r:) p Fb 396 2655 a(POST) 44
|
||||
b(/phpgroupwar) n(e/xmlrpc.php) f(HTTP/1.0) 396 2752
|
||||
y(User-Agent:) g(PHP) i(XMLRPC) e(1.0) 396 2849 y(Host:) h(my.local.ho)
|
||||
n(st) 396 2946 y(Authorizati) n(on:) h(Basic) f(ZDgxNDIy) n
|
||||
(ZDRkYjg5NDEy) n(NGNiMzZlMDhh) n(ZTdlYzAxZmY6) n(NTU3YzkyYjB) n
|
||||
(mNGE4ZDVlOTU) n(zMzI2YmU2OTQ) n(yNjM3YjQ=) 396 3044
|
||||
y(Content-Typ) n(e:) h(text/xml) 396 3141 y(Content-Len) n(gth:) g(875)
|
||||
p Fd 396 3429 a(The) 20 b(longish) f(string) h(is) h(a) g(base64) e
|
||||
(encodin) n(g) h(of) g(the) h($sessionid) e(.) i(':') f(.) g($kp3) n(.)
|
||||
h(F) o(or) f(no) n(w) f(this) i(is) g(our) f(only) f(suppo) n(rted) 396
|
||||
3537 y(authentica) n(tion) h(method) n(.) h(Addition) n(al) g(metho) n
|
||||
(ds) g(w) o(ould) f(pro) n(bably) f(also) i(af) n(fect) f(the) g(metho)
|
||||
n(dCalls.) h(This) f(is) i(certain) n(ly) 396 3645 y(open) d(to) i
|
||||
(discussion.) e(F) o(ollo) n(wing) g(is) i(a) g(typical) f(requ) n(est)
|
||||
h(for) f(some) g(con) n(tact) h(data:) p Fb 396 3825
|
||||
a(<?xml) 44 b(version="1.) n(0"?>) 396 3922 y(<methodCall) n(>) 396
|
||||
4019 y(<methodName) n(>addressbook) n(.boaddressbo) n(ok.read_entr) n
|
||||
(ies</methodN) n(ame>) 396 4116 y(<params>) 396 4213
|
||||
y(<param>) 396 4310 y(<value><str) n(uct>) 396 4408 y(<member><na) n
|
||||
(me>start</na) n(me>) 396 4505 y(<value><str) n(ing>1</strin) n
|
||||
(g></value>) 396 4602 y(</member>) 396 4699 y(<member><na) n
|
||||
(me>limit</na) n(me>) 396 4796 y(<value><str) n(ing>5</strin) n
|
||||
(g></value>) p Black Fa 3842 5278 a(4) p Black 90 rotate
|
||||
dyy eop
|
||||
4 3 bop Black 0 TeXcolorgray Black 2413 -132 a Fa(eGr)l(oupW)-8
|
||||
b(ar)m(e)20 b(XML-RPC/SO)-5 b(AP)20 b(Methodolo)o(gy)p
|
||||
Black 396 72 a Fd(The)g(longish)f(string)h(is)h(a)g(base64)e(encoding)f
|
||||
(of)i(the)h($sessionid)e(.)i(':')f(.)g($kp3.)f(F)o(or)h(no)n(w)f(this)i
|
||||
(is)g(our)f(only)f(supported)396 180 y(authentication)f(method.)h
|
||||
(Additional)g(methods)g(w)o(ould)h(probably)d(also)k(af)n(fect)f(the)g
|
||||
(methodCalls.)f(This)h(is)i(certainly)396 288 y(open)d(to)i
|
||||
(discussion.)e(F)o(ollo)n(wing)g(is)i(a)g(typical)f(request)f(for)h
|
||||
(some)g(contact)f(data:)396 468 y Fb(<?xml)44 b(version="1.0"?>)396
|
||||
566 y(<methodCall>)396 663 y(<methodName>addressbook.boaddressbook.rea)
|
||||
o(d_entr)o(ies</m)o(ethodN)o(ame>)396 760 y(<params>)396
|
||||
857 y(<param>)396 954 y(<value><struct>)396 1051 y
|
||||
(<member><name>start</name>)396 1148 y
|
||||
(<value><string>1</string></value>)396 1246 y(</member>)396
|
||||
1343 y(<member><name>limit</name>)396 1440 y
|
||||
(<value><string>5</string></value>)396 1537 y(</member>)396
|
||||
1634 y(<member><name>fields</name>)396 1731 y(<value><struct>)396
|
||||
1828 y(<member><name>n_given</name>)396 1926 y
|
||||
(<value><string>n_given</string></value>)396 2023 y(</member>)396
|
||||
2120 y(<member><name>n_family</name>)396 2217 y
|
||||
(<value><string>n_family</string></value>)396 2314 y(</member>)396
|
||||
2411 y(</struct></value>)396 2508 y(</member>)396 2605
|
||||
y(<member><name>query</name>)396 2703 y
|
||||
(<value><string></string></value>)396 2800 y(</member>)396
|
||||
2897 y(<member><name>filter</name>)396 2994 y
|
||||
(<value><string></string></value>)396 3091 y(</member>)396
|
||||
3188 y(<member><name>sort</name>)396 3285 y
|
||||
(<value><string></string></value>)396 3383 y(</member>)396
|
||||
3480 y(<member><name>order</name>)396 3577 y
|
||||
(<value><string></string></value>)396 3674 y(</member>)396
|
||||
3771 y(</struct></value>)396 3868 y(</param>)396 3965
|
||||
y(</params>)396 4063 y(</methodCall>)396 4351 y Fd(Successful)20
|
||||
b(response:)396 4531 y Fb(<?xml)44 b(version="1.0"?>)396
|
||||
4628 y(<methodResponse>)396 4725 y(<params>)396 4822
|
||||
y(<param>)396 4919 y(<value><struct>)396 5016 y(<member><name>0</name>)
|
||||
396 5114 y(<value><struct>)p Black 3842 5569 a Fa(4)p
|
||||
Black eop
|
||||
%%Page: 5 5
|
||||
5 4 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fb 396 579 a(</member>) 396 676 y(<member><na) n(me>fields</n) n
|
||||
(ame>) 396 773 y(<value><str) n(uct>) 396 870 y(<member><na) n
|
||||
(me>n_given</) n(name>) 396 967 y(<value><str) n(ing>n_given<) n
|
||||
(/string></va) n(lue>) 396 1065 y(</member>) 396 1162
|
||||
y(<member><na) n(me>n_family<) n(/name>) 396 1259 y(<value><str) n
|
||||
(ing>n_family) n(</string></v) n(alue>) 396 1356 y(</member>) 396
|
||||
1453 y(</struct></) n(value>) 396 1550 y(</member>) 396
|
||||
1647 y(<member><na) n(me>query</na) n(me>) 396 1745 y(<value><str) n
|
||||
(ing></string) n(></value>) 396 1842 y(</member>) 396
|
||||
1939 y(<member><na) n(me>filter</n) n(ame>) 396 2036
|
||||
y(<value><str) n(ing></string) n(></value>) 396 2133
|
||||
y(</member>) 396 2230 y(<member><na) n(me>sort</nam) n(e>) 396
|
||||
2327 y(<value><str) n(ing></string) n(></value>) 396
|
||||
2424 y(</member>) 396 2522 y(<member><na) n(me>order</na) n(me>) 396
|
||||
2619 y(<value><str) n(ing></string) n(></value>) 396
|
||||
2716 y(</member>) 396 2813 y(</struct></) n(value>) 396
|
||||
2910 y(</param>) 396 3007 y(</params>) 396 3104 y(</methodCal) n(l>) p
|
||||
Fd 396 3393 a(Successful) g(respon) n(se:) p Fb 396 3573
|
||||
a(<?xml) 44 b(version="1.) n(0"?>) 396 3670 y(<methodResp) n(onse>) 396
|
||||
3767 y(<params>) 396 3864 y(<param>) 396 3961 y(<value><str) n(uct>) 396
|
||||
4058 y(<member><na) n(me>0</name>) 396 4155 y(<value><str) n(uct>) 396
|
||||
4253 y(<member><na) n(me>id</name>) 396 4350 y(<value><str) n
|
||||
(ing>1</strin) n(g></value>) 396 4447 y(</member>) 396
|
||||
4544 y(<member><na) n(me>lid</name) n(>) 396 4641 y(<value><str) n
|
||||
(ing></string) n(></value>) 396 4738 y(</member>) 396
|
||||
4835 y(<member><na) n(me>tid</name) n(>) p Black Fa 3842
|
||||
5278 a(5) p Black 90 rotate dyy eop
|
||||
5 4 bop Black 0 TeXcolorgray Black 2413 -132 a Fa(eGr)l(oupW)-8
|
||||
b(ar)m(e)20 b(XML-RPC/SO)-5 b(AP)20 b(Methodolo)o(gy)p
|
||||
Black 396 72 a Fb(<member><name>id</name>)396 170 y
|
||||
(<value><string>1</string></value>)396 267 y(</member>)396
|
||||
364 y(<member><name>lid</name>)396 461 y
|
||||
(<value><string></string></value>)396 558 y(</member>)396
|
||||
655 y(<member><name>tid</name>)396 752 y
|
||||
(<value><string>n</string></value>)396 850 y(</member>)396
|
||||
947 y(<member><name>owner</name>)396 1044 y
|
||||
(<value><string>500</string></value>)396 1141 y(</member>)396
|
||||
1238 y(<member><name>access</name>)396 1335 y
|
||||
(<value><string>private</string></value>)396 1432 y(</member>)396
|
||||
1530 y(<member><name>cat_id</name>)396 1627 y
|
||||
(<value><string>1</string></value>)396 1724 y(</member>)396
|
||||
1821 y(<member><name>n_given</name>)396 1918 y
|
||||
(<value><string>Alan</string></value>)396 2015 y(</member>)396
|
||||
2112 y(</struct></value>)396 2209 y(</member>)396 2307
|
||||
y(<member><name>1</name>)396 2404 y(<value><struct>)396
|
||||
2501 y(<member><name>id</name>)396 2598 y
|
||||
(<value><string>2</string></value>)396 2695 y(</member>)396
|
||||
2792 y(<member><name>lid</name>)396 2889 y
|
||||
(<value><string></string></value>)396 2987 y(</member>)396
|
||||
3084 y(<member><name>tid</name>)396 3181 y
|
||||
(<value><string>n</string></value>)396 3278 y(</member>)396
|
||||
3375 y(<member><name>owner</name>)396 3472 y
|
||||
(<value><string>500</string></value>)396 3569 y(</member>)396
|
||||
3666 y(<member><name>access</name>)396 3764 y
|
||||
(<value><string>private</string></value>)396 3861 y(</member>)396
|
||||
3958 y(<member><name>cat_id</name>)396 4055 y
|
||||
(<value><string>1</string></value>)396 4152 y(</member>)396
|
||||
4249 y(<member><name>n_given</name>)396 4346 y
|
||||
(<value><string>Andy</string></value>)396 4444 y(</member>)396
|
||||
4541 y(</struct></value>)396 4638 y(</member>)396 4735
|
||||
y(...)396 5023 y Fd(Unauthorized)e(access)j(attempt)f(returns:)p
|
||||
Black 3842 5569 a Fa(5)p Black eop
|
||||
%%Page: 6 6
|
||||
6 5 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fb 396 579 a(<value><str) n(ing>n</strin) n(g></value>) 396
|
||||
676 y(</member>) 396 773 y(<member><na) n(me>owner</na) n(me>) 396
|
||||
870 y(<value><str) n(ing>500</str) n(ing></value>) 396
|
||||
967 y(</member>) 396 1065 y(<member><na) n(me>access</n) n(ame>) 396
|
||||
1162 y(<value><str) n(ing>private<) n(/string></va) n(lue>) 396
|
||||
1259 y(</member>) 396 1356 y(<member><na) n(me>cat_id</n) n(ame>) 396
|
||||
1453 y(<value><str) n(ing>1</strin) n(g></value>) 396
|
||||
1550 y(</member>) 396 1647 y(<member><na) n(me>n_given</) n(name>) 396
|
||||
1745 y(<value><str) n(ing>Alan</st) n(ring></value) n(>) 396
|
||||
1842 y(</member>) 396 1939 y(</struct></) n(value>) 396
|
||||
2036 y(</member>) 396 2133 y(<member><na) n(me>1</name>) 396
|
||||
2230 y(<value><str) n(uct>) 396 2327 y(<member><na) n(me>id</name>) 396
|
||||
2424 y(<value><str) n(ing>2</strin) n(g></value>) 396
|
||||
2522 y(</member>) 396 2619 y(<member><na) n(me>lid</name) n(>) 396
|
||||
2716 y(<value><str) n(ing></string) n(></value>) 396
|
||||
2813 y(</member>) 396 2910 y(<member><na) n(me>tid</name) n(>) 396
|
||||
3007 y(<value><str) n(ing>n</strin) n(g></value>) 396
|
||||
3104 y(</member>) 396 3202 y(<member><na) n(me>owner</na) n(me>) 396
|
||||
3299 y(<value><str) n(ing>500</str) n(ing></value>) 396
|
||||
3396 y(</member>) 396 3493 y(<member><na) n(me>access</n) n(ame>) 396
|
||||
3590 y(<value><str) n(ing>private<) n(/string></va) n(lue>) 396
|
||||
3687 y(</member>) 396 3784 y(<member><na) n(me>cat_id</n) n(ame>) 396
|
||||
3882 y(<value><str) n(ing>1</strin) n(g></value>) 396
|
||||
3979 y(</member>) 396 4076 y(<member><na) n(me>n_given</) n(name>) 396
|
||||
4173 y(<value><str) n(ing>Andy</st) n(ring></value) n(>) 396
|
||||
4270 y(</member>) 396 4367 y(</struct></) n(value>) 396
|
||||
4464 y(</member>) 396 4561 y(...) p Fd 396 4850 a(Unautho) n(rized) g
|
||||
(access) h(attempt) f(retur) n(ns:) p Black Fa 3840 5278
|
||||
a(6) p Black 90 rotate dyy eop
|
||||
%%Page: 7 7
|
||||
7 6 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Fb 396 579 a(<methodResp) n(onse>) 396 676 y(<params>) 396
|
||||
773 y(<param>) 396 870 y(<value><str) n(ing>UNAUTHOR) n(IZED</string) n
|
||||
(></value>) 396 967 y(</param>) 396 1065 y(</params>) 396
|
||||
1162 y(</methodRes) n(ponse>) p Ff -2 1719 a(3.) 39 b(More) g(to) g
|
||||
(come) s(...) p Fd 396 1899 a(Documen) n(ting) 20 b(e) n(v) o(ery) f
|
||||
(single) h(call) h(will) f(be) h(dif) n(\002cu) n(lt,) g(b) n(ut) f
|
||||
(should) f(be) h(done.) f(In) h(leiu) h(of) e(this,) i(please) f(see) h
|
||||
(the) 396 2007 y(class.bo{APPN) m(AME}.in) n(c.php) e(\002les) i(in) g
|
||||
(each) f(app) n(lication/inc) g(directo) n(ry) g(in) h(the) f(php) n
|
||||
(grou) n(pw) o(are) g(cvs.) g(In) g(this) h(\002le) 396
|
||||
2115 y(will) g(be) f(a) h(list_metho) n(ds\(\)) f(functio) n(n,) g
|
||||
(which) g(return) n(s) h(the) f(inform) n(ation) g(to) g(the) h(serv) o
|
||||
(e) n(r) g(abou) n(t) g(input/o) n(utput) f(structur) n(e) 396
|
||||
2222 y(for) g(each) g(call.) g(If) g(the) g(\002le) h(does) f(not) g
|
||||
(ha) n(v) o(e) g(this) g(functio) n(n,) h(then) e(it) i(is) g(not) f
|
||||
(yet) g(w) o(orkab) n(le) h(via) f(this) h(interf) o(ace.) e(As) i(for)
|
||||
396 2330 y(the) f(actual) g(function) n(s,) h(the) o(y) e(are) i(also) f
|
||||
(in) g(this) h(\002le.) g(Genera) n(lly) -5 b(,) 20 b(the) o(y) g(will)
|
||||
h(all) f(accept) g(associati) n(v) o(e) g(array) f(input) h(and) 396
|
||||
2438 y(return) f(same,) h(b) n(ut) h(not) e(al) o(w) o(ays.) i(This) f
|
||||
(code) g(is) h(in) f(\003ux,) g(ha) n(v) o(e) f(fun.) p
|
||||
Black Fa 3839 5278 a(7) p Black 90 rotate dyy eop
|
||||
%%Page: 8 8
|
||||
8 7 bop Black 0 TeXcolorgray Black Fa 2326 67 a(php) n(Gr) l(oupW) -8
|
||||
b(ar) m(e) 20 b(XML-RPC/SO) -5 b(AP) 20 b(Methodo) n(lo) o(gy) p
|
||||
Black Black 3842 5278 a(8) p Black 90 rotate dyy eop
|
||||
6 5 bop Black 0 TeXcolorgray Black 2413 -132 a Fa(eGr)l(oupW)-8
|
||||
b(ar)m(e)20 b(XML-RPC/SO)-5 b(AP)20 b(Methodolo)o(gy)p
|
||||
Black 396 72 a Fb(<methodResponse>)396 170 y(<params>)396
|
||||
267 y(<param>)396 364 y(<value><string>UNAUTHORIZED</string></val)o
|
||||
(ue>)396 461 y(</param>)396 558 y(</params>)396 655 y
|
||||
(</methodResponse>)-2 1164 y Ff(3.)34 b(More)f(to)g(come)r(...)396
|
||||
1331 y Fd(Documenting)18 b(e)n(v)o(ery)h(single)h(call)h(will)f(be)h
|
||||
(dif)n(\002cult,)e(b)n(ut)h(should)f(be)h(done.)f(In)h(leiu)h(of)e
|
||||
(this,)i(please)f(see)h(the)396 1439 y(class.bo{APPN)m(AME}.inc.php)c
|
||||
(\002les)k(in)g(each)f(application/inc)e(directory)g(in)j(the)f(e)o
|
||||
(groupw)o(are)d(cvs.)j(In)g(this)h(\002le)396 1547 y(will)g(be)f(a)h
|
||||
(list_methods\(\))d(function,)g(which)i(returns)f(the)h(information)e
|
||||
(to)i(the)h(serv)o(er)e(about)g(input/output)f(structure)396
|
||||
1655 y(for)i(each)g(call.)g(If)g(the)g(\002le)h(does)f(not)g(ha)n(v)o
|
||||
(e)g(this)g(function,)f(then)g(it)i(is)g(not)f(yet)g(w)o(orkable)f(via)
|
||||
h(this)h(interf)o(ace.)e(As)i(for)396 1763 y(the)f(actual)g(functions,)
|
||||
f(the)o(y)g(are)i(also)f(in)g(this)h(\002le.)g(Generally)-5
|
||||
b(,)18 b(the)o(y)i(will)h(all)f(accept)g(associati)n(v)o(e)g(array)f
|
||||
(input)h(and)396 1871 y(return)f(same,)h(b)n(ut)h(not)e(al)o(w)o(ays.)i
|
||||
(This)f(code)g(is)h(in)f(\003ux,)g(ha)n(v)o(e)f(fun.)p
|
||||
Black 3840 5569 a Fa(6)p Black eop
|
||||
%%Trailer
|
||||
end
|
||||
userdict /end-hook known{end-hook}if
|
||||
|
@ -5,14 +5,14 @@
|
||||
See http://www.lyx.org/ for more information -->
|
||||
<artheader>
|
||||
<title>
|
||||
phpGroupWare XML-RPC/SOAP Methodology
|
||||
eGroupWare XML-RPC/SOAP Methodology
|
||||
</title>
|
||||
<author>
|
||||
Miles Lott
|
||||
milosch@phpgroupware.org
|
||||
(C) 2001-2004 Miles Lott
|
||||
milos@groupwhere.org
|
||||
</author>
|
||||
<date>
|
||||
August 23, 2001
|
||||
August 23, 2001 and December 29, 2003
|
||||
</date>
|
||||
<para>
|
||||
additions made September 3, 2001.
|
||||
@ -30,7 +30,7 @@
|
||||
Login and authentication
|
||||
</title>
|
||||
<para>
|
||||
Authentication for user logins is handled internally no differently than for the typical phpGroupWare login via web browser. Server logins, added for XML-RPC and SOAP, are only slightly different. For either protocol, user and server login and authentication and subsequent requests are handled by their respective server apps, xmlrpc.php and soap.php. A server is identified by a custom HTTP header, without which a normal user login will be undertaken.
|
||||
Authentication for user logins is handled internally no differently than for the typical eGroupWare login via web browser. Server logins, added for XML-RPC and SOAP, are only slightly different. For either protocol, user and server login and authentication and subsequent requests are handled by their respective server apps, xmlrpc.php and soap.php. A server is identified by a custom HTTP header, without which a normal user login will be undertaken.
|
||||
</para>
|
||||
<para>
|
||||
A client or server sends the appropriate XML-RPC or SOAP packet containing host, user, and password information to the phpgw server. The server then assigns a sessionid and key, which is returned to the client in the appropriate format.
|
||||
@ -303,7 +303,7 @@
|
||||
More to come...
|
||||
</title>
|
||||
<para>
|
||||
Documenting every single call will be difficult, but should be done. In leiu of this, please see the class.bo{APPNAME}.inc.php files in each application/inc directory in the phpgroupware cvs. In this file will be a list_methods() function, which returns the information to the server about input/output structure for each call. If the file does not have this function, then it is not yet workable via this interface. As for the actual functions, they are also in this file. Generally, they will all accept associative array input and return same, but not always. This code is in flux, have fun.
|
||||
Documenting every single call will be difficult, but should be done. In leiu of this, please see the class.bo{APPNAME}.inc.php files in each application/inc directory in the egroupware cvs. In this file will be a list_methods() function, which returns the information to the server about input/output structure for each call. If the file does not have this function, then it is not yet workable via this interface. As for the actual functions, they are also in this file. Generally, they will all accept associative array input and return same, but not always. This code is in flux, have fun.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
|
||||
|
||||
phpGroupWare XML-RPC/SOAP Methodology
|
||||
eGroupWare XML-RPC/SOAP Methodology
|
||||
|
||||
Miles Lott
|
||||
(C) 2001-2004 Miles Lott
|
||||
|
||||
milosch@phpgroupware.org
|
||||
milos@groupwhere.org
|
||||
|
||||
August 23, 2001
|
||||
August 23, 2001 and December 29, 2003
|
||||
|
||||
additions made September 3, 2001.
|
||||
|
||||
@ -18,13 +18,13 @@ system.
|
||||
1.1 Login and authentication
|
||||
|
||||
Authentication for user logins is handled internally no differently
|
||||
than for the typical phpGroupWare login via web browser.
|
||||
Server logins, added for XML-RPC and SOAP, are only slightly
|
||||
different. For either protocol, user and server login and
|
||||
authentication and subsequent requests are handled by their
|
||||
respective server apps, xmlrpc.php and soap.php. A server
|
||||
is identified by a custom HTTP header, without which a normal
|
||||
user login will be undertaken.
|
||||
than for the typical eGroupWare login via web browser. Server
|
||||
logins, added for XML-RPC and SOAP, are only slightly different.
|
||||
For either protocol, user and server login and authentication
|
||||
and subsequent requests are handled by their respective
|
||||
server apps, xmlrpc.php and soap.php. A server is identified
|
||||
by a custom HTTP header, without which a normal user login
|
||||
will be undertaken.
|
||||
|
||||
A client or server sends the appropriate XML-RPC or SOAP
|
||||
packet containing host, user, and password information to
|
||||
@ -462,7 +462,7 @@ Unauthorized access attempt returns:
|
||||
|
||||
Documenting every single call will be difficult, but should
|
||||
be done. In leiu of this, please see the class.bo{APPNAME}.inc.php
|
||||
files in each application/inc directory in the phpgroupware
|
||||
files in each application/inc directory in the egroupware
|
||||
cvs. In this file will be a list_methods() function, which
|
||||
returns the information to the server about input/output
|
||||
structure for each call. If the file does not have this
|
||||
|
@ -5,7 +5,7 @@
|
||||
from xmlrpclib import *
|
||||
import sys
|
||||
|
||||
server = Server("http://www.phpgroupware.org/cvsdemo/xmlrpc.php");
|
||||
server = Server("http://www.egroupware.org/egroupware/xmlrpc.php");
|
||||
|
||||
try:
|
||||
print "Listing methods:\n"
|
||||
|
Loading…
Reference in New Issue
Block a user