6
* @author Bobby Allen (ballen@zpanelcp.com)
7
* @copyright ZPanel Project (http://www.zpanelcp.com/)
8
* @link http://www.zpanelcp.com/
9
* @license GPL (http://www.gnu.org/licenses/gpl.html)
11
class webservice extends ws_xmws {
14
* Get the full list of currently active domains on the server.
18
public function GetAllDomains() {
21
$alldomains = module_controller::ListDomains();
22
foreach ($alldomains as $domain) {
23
$response_xml = $response_xml . ws_xmws::NewXMLContentSection('domain', array(
24
'id' => $domain['id'],
25
'uid' => $domain['uid'],
26
'domain' => $domain['name'],
27
'homedirectory' => $domain['directory'],
28
'active' => $domain['active'],
31
$dataobject = new runtime_dataobject();
32
$dataobject->addItemValue('response', '');
33
$dataobject->addItemValue('content', $response_xml);
34
return $dataobject->getDataObject();
38
* Gets a list of all the domains that a user has configured on their hosting account (the user id needs to be sent in the <content> tag).
42
public function GetDomainsForUser() {
44
$request_data = $this->RawXMWSToArray($this->wsdata);
46
$alldomains = module_controller::ListDomains($request_data['content']);
47
if (!fs_director::CheckForEmptyValue($alldomains)) {
48
foreach ($alldomains as $domain) {
49
$response_xml = $response_xml . ws_xmws::NewXMLContentSection('domain', array(
50
'id' => $domain['id'],
51
'uid' => $domain['uid'],
52
'domain' => $domain['name'],
53
'homedirectory' => $domain['directory'],
54
'active' => $domain['active'],
59
$dataobject = new runtime_dataobject();
60
$dataobject->addItemValue('response', '');
61
$dataobject->addItemValue('content', $response_xml);
63
return $dataobject->getDataObject();
67
* Enables an authenticated user to create a domain on their hosting account.
70
public function CreateDomain() {
71
$request_data = $this->RawXMWSToArray($this->wsdata);
72
$dataobject = new runtime_dataobject();
73
$dataobject->addItemValue('response', '');
74
if (module_controller::ExecuteAddDomain(ws_generic::GetTagValue('uid', $request_data['content']), ws_generic::GetTagValue('domain', $request_data['content']), ws_generic::GetTagValue('destination', $request_data['content']), ws_generic::GetTagValue('autohome', $request_data['content']))) {
75
$dataobject->addItemValue('content', ws_xmws::NewXMLTag('domain', ws_generic::GetTagValue('domain', $request_data['content'])) . ws_xmws::NewXMLTag('created', 'true'));
77
$dataobject->addItemValue('content', ws_xmws::NewXMLTag('domain', ws_generic::GetTagValue('domain', $request_data['content'])) . ws_xmws::NewXMLTag('created', 'false'));
79
return $dataobject->getDataObject();
83
* Delete a specified domain using the content <domainid> tag to pass the domain DB ID through.
86
public function DeleteDomain() {
87
$request_data = $this->RawXMWSToArray($this->wsdata);
88
$contenttags = $this->XMLDataToArray($request_data['content']);
89
$dataobject = new runtime_dataobject();
90
$dataobject->addItemValue('response', '');
92
if (module_controller::ExecuteDeleteDomain($contenttags['domainid'])) {
93
$dataobject->addItemValue('content', ws_xmws::NewXMLTag('domainid', $contenttags['domainid']) . ws_xmws::NewXMLTag('deleted', 'true'));
95
$dataobject->addItemValue('content', ws_xmws::NewXMLTag('domainid', $contenttags['domainid']) . ws_xmws::NewXMLTag('deleted', 'false'));
97
return $dataobject->getDataObject();