source: trunk/zpush/lib/webservice/webservice.php @ 7589

Revision 7589, 3.4 KB checked in by douglas, 11 years ago (diff)

Ticket #3209 - Integrar módulo de sincronização Z-push ao Expresso

Line 
1<?php
2/***********************************************
3* File      :   webservice.php
4* Project   :   Z-Push
5* Descr     :   Provides an interface for administration
6*               tasks over a webservice
7*
8* Created   :   29.12.2011
9*
10* Copyright 2007 - 2012 Zarafa Deutschland GmbH
11*
12* This program is free software: you can redistribute it and/or modify
13* it under the terms of the GNU Affero General Public License, version 3,
14* as published by the Free Software Foundation with the following additional
15* term according to sec. 7:
16*
17* According to sec. 7 of the GNU Affero General Public License, version 3,
18* the terms of the AGPL are supplemented with the following terms:
19*
20* "Zarafa" is a registered trademark of Zarafa B.V.
21* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH
22* The licensing of the Program under the AGPL does not imply a trademark license.
23* Therefore any rights, title and interest in our trademarks remain entirely with us.
24*
25* However, if you propagate an unmodified version of the Program you are
26* allowed to use the term "Z-Push" to indicate that you distribute the Program.
27* Furthermore you may use our trademarks where it is necessary to indicate
28* the intended purpose of a product or service provided you use it in accordance
29* with honest practices in industrial or commercial matters.
30* If you want to propagate modified versions of the Program under the name "Z-Push",
31* you may only do so if you have a written permission by Zarafa Deutschland GmbH
32* (to acquire a permission please contact Zarafa at trademark@zarafa.com).
33*
34* This program is distributed in the hope that it will be useful,
35* but WITHOUT ANY WARRANTY; without even the implied warranty of
36* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37* GNU Affero General Public License for more details.
38*
39* You should have received a copy of the GNU Affero General Public License
40* along with this program.  If not, see <http://www.gnu.org/licenses/>.
41*
42* Consult LICENSE file for details
43************************************************/
44
45class Webservice {
46    private $server;
47
48    /**
49     * Handles a webservice command
50     *
51     * @param int       $commandCode
52     *
53     * @access public
54     * @return boolean
55     * @throws SoapFault
56     */
57    public function Handle($commandCode) {
58        if (Request::GetDeviceType() !== "webservice" || Request::GetDeviceID() !== "webservice")
59            throw new FatalException("Invalid device id and type for webservice execution");
60
61        if (Request::GetGETUser() != Request::GetAuthUser())
62            ZLog::Write(LOGLEVEL_INFO, sprintf("Webservice::HandleWebservice('%s'): user '%s' executing action for user '%s'", $commandCode, Request::GetAuthUser(), Request::GetGETUser()));
63
64        // initialize non-wsdl soap server
65        $this->server = new SoapServer(null, array('uri' => "http://z-push.sf.net/webservice"));
66
67        // the webservice command is handled by its class
68        if ($commandCode == ZPush::COMMAND_WEBSERVICE_DEVICE) {
69            ZLog::Write(LOGLEVEL_DEBUG, sprintf("Webservice::HandleWebservice('%s'): executing WebserviceDevice service", $commandCode));
70
71            include_once('webservicedevice.php');
72            $this->server->setClass("WebserviceDevice");
73        }
74        $this->server->handle();
75
76        ZLog::Write(LOGLEVEL_DEBUG, sprintf("Webservice::HandleWebservice('%s'): sucessfully sent %d bytes", $commandCode, ob_get_length()));
77        return true;
78    }
79}
80?>
Note: See TracBrowser for help on using the repository browser.