From 0baa5d4d41c79e841dfc35a35a377f7316a145bb Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Mon, 10 Sep 2012 10:37:31 -0400
Subject: [PATCH] Do not process sub templates if no main template (master template) is present!
---
interface/lib/classes/remoting.inc.php | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 322 insertions(+), 23 deletions(-)
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index 743b763..ae731d7 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -39,7 +39,7 @@
//* remote session timeout in seconds
private $session_timeout = 600;
- private $server;
+ protected $server;
public $oldDataRecord;
public $dataRecord;
public $id;
@@ -1063,7 +1063,8 @@
$this->server->fault('permission_denied','You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->klientadd('../client/form/client.tform.php',$reseller_id, $params);
+ if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id;
+ $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php',$reseller_id, $params);
return $affected_rows;
}
@@ -1077,7 +1078,8 @@
$this->server->fault('permission_denied','You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->updateQuery('../client/form/client.tform.php', $reseller_id, $client_id, $params);
+ if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id;
+ $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params);
$app->remoting_lib->ispconfig_sysuser_update($params,$client_id);
@@ -1113,7 +1115,7 @@
$client_id = intval($client_id);
$client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id");
- $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic';
+ $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic';
$tables_array = explode(',',$tables);
$client_group_id = intval($client_group['groupid']);
@@ -1143,7 +1145,7 @@
$app->db->query("DELETE FROM sys_user WHERE client_id = $client_id");
// Delete all records (sub-clients, mail, web, etc....) of this client.
- $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic';
+ $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic';
$tables_array = explode(',',$tables);
$client_group_id = intval($client_group['groupid']);
if($client_group_id > 1) {
@@ -1257,7 +1259,19 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- return $this->insertQuery('../sites/form/database.tform.php',$client_id,$params);
+
+ $sql = $this->insertQueryPrepare('../sites/form/database.tform.php', $client_id, $params);
+ if($sql !== false) {
+ $app->uses('sites_database_plugin');
+
+ $this->id = 0;
+ $this->dataRecord = $params;
+ $app->sites_database_plugin->processDatabaseInsert($this);
+
+ return $this->insertQueryExecute($sql, $params);
+ }
+
+ return false;
}
//* Update a record
@@ -1267,8 +1281,18 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
- $affected_rows = $this->updateQuery('../sites/form/database.tform.php',$client_id,$primary_id,$params);
- return $affected_rows;
+
+ $sql = $this->updateQueryPrepare('../sites/form/database.tform.php', $client_id, $primary_id, $params);
+ if($sql !== false) {
+ $app->uses('sites_database_plugin');
+
+ $this->id = $primary_id;
+ $this->dataRecord = $params;
+ $app->sites_database_plugin->processDatabaseUpdate($this);
+ return $this->updateQueryExecute($sql, $primary_id, $params);
+ }
+
+ return false;
}
//* Delete a record
@@ -1278,7 +1302,61 @@
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
+
+ $app->uses('sites_database_plugin');
+ $app->sites_database_plugin->processDatabaseDelete($primary_id);
+
$affected_rows = $this->deleteQuery('../sites/form/database.tform.php',$primary_id);
+ return $affected_rows;
+ }
+
+ // ----------------------------------------------------------------------------------------------------------
+
+ //* Get record details
+ public function sites_database_user_get($session_id, $primary_id)
+ {
+ global $app;
+
+ if(!$this->checkPerm($session_id, 'sites_database_user_get')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $app->uses('remoting_lib');
+ $app->remoting_lib->loadFormDef('../sites/form/database_user.tform.php');
+ return $app->remoting_lib->getDataRecord($primary_id);
+ }
+
+ //* Add a record
+ public function sites_database_user_add($session_id, $client_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_database_user_add')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ return $this->insertQuery('../sites/form/database_user.tform.php', $client_id, $params);
+ }
+
+ //* Update a record
+ public function sites_database_user_update($session_id, $client_id, $primary_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_database_user_update')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ return $this->updateQuery('../sites/form/database_user.tform.php', $client_id, $primary_id, $params);
+ }
+
+ //* Delete a record
+ public function sites_database_user_delete($session_id, $primary_id)
+ {
+ if(!$this->checkPerm($session_id, 'sites_database_user_delete')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ $affected_rows = $this->deleteQuery('../sites/form/database_user.tform.php',$primary_id);
return $affected_rows;
}
@@ -1328,6 +1406,26 @@
}
$affected_rows = $this->deleteQuery('../sites/form/ftp_user.tform.php',$primary_id);
return $affected_rows;
+ }
+
+ //* Get server for an ftp user
+ public function sites_ftp_user_server_get($session_id, $ftp_user)
+ {
+ global $app;
+
+ if(!$this->checkPerm($session_id, 'sites_ftp_user_server_get')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ $data = $app->db->queryOneRecord("SELECT server_id FROM ftp_user WHERE username = '".$app->db->quote($ftp_user)."'");
+ //file_put_contents('/tmp/test.txt', serialize($data));
+ if(!isset($data['server_id'])) return false;
+
+ $server = $this->server_get($session_id, $data['server_id'], 'server');
+ //file_put_contents('/tmp/test2.txt', serialize($server));
+
+ return $server;
}
// ----------------------------------------------------------------------------------------------------------
@@ -1454,6 +1552,75 @@
return $affected_rows;
}
+ // ----------------------------------------------------------------------------------------------------------
+
+ //* Get record details
+ public function sites_web_vhost_subdomain_get($session_id, $primary_id)
+ {
+ global $app;
+
+ if(!$this->checkPerm($session_id, 'sites_web_subdomain_get')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $app->uses('remoting_lib');
+ $app->remoting_lib->loadFormDef('../sites/form/web_vhost_subdomain.tform.php');
+ return $app->remoting_lib->getDataRecord($primary_id);
+ }
+
+ //* Add a record
+ public function sites_web_vhost_subdomain_add($session_id, $client_id, $params)
+ {
+ global $app;
+ if(!$this->checkPerm($session_id, 'sites_web_subdomain_add')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ //* Set a few params to "not empty" values which get overwritten by the sites_web_domain_plugin
+ if($params['document_root'] == '') $params['document_root'] = '-';
+ if($params['system_user'] == '') $params['system_user'] = '-';
+ if($params['system_group'] == '') $params['system_group'] = '-';
+
+ //* Set a few defaults for nginx servers
+ if($params['pm_max_children'] == '') $params['pm_max_children'] = 1;
+ if($params['pm_start_servers'] == '') $params['pm_start_servers'] = 1;
+ if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
+ if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
+
+ $domain_id = $this->insertQuery('../sites/form/web_vhost_subdomain.tform.php',$client_id,$params, 'sites:web_vhost_subdomain:on_after_insert');
+ return $domain_id;
+ }
+
+ //* Update a record
+ public function sites_web_vhost_subdomain_update($session_id, $client_id, $primary_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_subdomain_update')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ //* Set a few defaults for nginx servers
+ if($params['pm_max_children'] == '') $params['pm_max_children'] = 1;
+ if($params['pm_start_servers'] == '') $params['pm_start_servers'] = 1;
+ if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
+ if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
+
+ $affected_rows = $this->updateQuery('../sites/form/web_vhost_subdomain.tform.php',$client_id,$primary_id,$params, 'sites:web_vhost_subdomain:on_after_insert');
+ return $affected_rows;
+ }
+
+ //* Delete a record
+ public function sites_web_vhost_subdomain_delete($session_id, $primary_id)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_subdomain_delete')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $affected_rows = $this->deleteQuery('../sites/form/web_vhost_subdomain.tform.php',$primary_id);
+ return $affected_rows;
+ }
+
// -----------------------------------------------------------------------------------------------
//* Get record details
@@ -1547,6 +1714,112 @@
return false;
}
$affected_rows = $this->deleteQuery('../sites/form/web_subdomain.tform.php',$primary_id);
+ return $affected_rows;
+ }
+
+ // ----------------------------------------------------------------------------------------------------------
+
+ //* Get record details
+ public function sites_web_folder_get($session_id, $primary_id)
+ {
+ global $app;
+
+ if(!$this->checkPerm($session_id, 'sites_web_folder_get')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $app->uses('remoting_lib');
+ $app->remoting_lib->loadFormDef('../sites/form/web_folder.tform.php');
+ return $app->remoting_lib->getDataRecord($primary_id);
+ }
+
+ //* Add a record
+ public function sites_web_folder_add($session_id, $client_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_folder_add')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ return $this->insertQuery('../sites/form/web_folder.tform.php',$client_id,$params);
+ }
+
+ //* Update a record
+ public function sites_web_folder_update($session_id, $client_id, $primary_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_folder_update')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $affected_rows = $this->updateQuery('../sites/form/web_folder.tform.php',$client_id,$primary_id,$params);
+ return $affected_rows;
+ }
+
+ //* Delete a record
+ public function sites_web_folder_delete($session_id, $primary_id)
+ {
+ global $app;
+ if(!$this->checkPerm($session_id, 'sites_web_folder_delete')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+
+ // Delete all users that belong to this folder. - taken from web_folder_delete.php
+ $records = $app->db->queryAllRecords("SELECT web_folder_user_id FROM web_folder_user WHERE web_folder_id = '".intval($primary_id)."'");
+ foreach($records as $rec) {
+ $this->deleteQuery('../sites/form/web_folder_user.tform.php',$rec['web_folder_user_id']);
+ //$app->db->datalogDelete('web_folder_user','web_folder_user_id',$rec['web_folder_user_id']);
+ }
+ unset($records);
+
+ $affected_rows = $this->deleteQuery('../sites/form/web_folder.tform.php',$primary_id);
+ return $affected_rows;
+ }
+
+ // -----------------------------------------------------------------------------------------------
+
+ //* Get record details
+ public function sites_web_folder_user_get($session_id, $primary_id)
+ {
+ global $app;
+
+ if(!$this->checkPerm($session_id, 'sites_web_folder_user_get')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $app->uses('remoting_lib');
+ $app->remoting_lib->loadFormDef('../sites/form/web_folder_user.tform.php');
+ return $app->remoting_lib->getDataRecord($primary_id);
+ }
+
+ //* Add a record
+ public function sites_web_folder_user_add($session_id, $client_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_folder_user_add')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ return $this->insertQuery('../sites/form/web_folder_user.tform.php',$client_id,$params);
+ }
+
+ //* Update a record
+ public function sites_web_folder_user_update($session_id, $client_id, $primary_id, $params)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_folder_user_update')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $affected_rows = $this->updateQuery('../sites/form/web_folder_user.tform.php',$client_id,$primary_id,$params);
+ return $affected_rows;
+ }
+
+ //* Delete a record
+ public function sites_web_folder_user_delete($session_id, $primary_id)
+ {
+ if(!$this->checkPerm($session_id, 'sites_web_folder_user_delete')) {
+ $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+ return false;
+ }
+ $affected_rows = $this->deleteQuery('../sites/form/web_folder_user.tform.php',$primary_id);
return $affected_rows;
}
@@ -2332,7 +2605,7 @@
protected function klientadd($formdef_file, $reseller_id, $params)
{
- global $app, $tform, $remoting_lib;
+ global $app;
$app->uses('remoting_lib');
//* Load the form definition
@@ -2340,13 +2613,6 @@
//* load the user profile of the client
$app->remoting_lib->loadUserProfile($reseller_id);
-
- //* load the client template
- if(isset($params['template_master']) and $params['template_master'] > 0)
- {
- $template=$app->db->queryOneRecord("SELECT * FROM client_template WHERE template_id=".intval($params['template_master']));
- if(is_array($template)) $params=array_merge($params,$template);
- }
//* Get the SQL query
$sql = $app->remoting_lib->getSQL($params,'INSERT',0);
@@ -2376,7 +2642,7 @@
$this->id = $insert_id;
$this->dataRecord = $params;
- $app->plugin->raiseEvent('client:client:on_after_insert',$this);
+ $app->plugin->raiseEvent('client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_insert',$this);
/*
if($app->db->errorMessage != '') {
@@ -2404,9 +2670,16 @@
return $insert_id;
}
- protected function insertQuery($formdef_file, $client_id, $params,$event_identifier = '')
+ protected function insertQuery($formdef_file, $client_id, $params,$event_identifier = '')
{
- global $app, $tform, $remoting_lib;
+ $sql = $this->insertQueryPrepare($formdef_file, $client_id, $params);
+ if($sql !== false) return $this->insertQueryExecute($sql, $params,$event_identifier = '');
+ else return false;
+ }
+
+ protected function insertQueryPrepare($formdef_file, $client_id, $params)
+ {
+ global $app;
$app->uses('remoting_lib');
@@ -2423,6 +2696,15 @@
return false;
}
+ return $sql;
+ }
+
+ protected function insertQueryExecute($sql, $params,$event_identifier = '')
+ {
+ global $app;
+
+ $app->uses('remoting_lib');
+
$app->db->query($sql);
if($app->db->errorMessage != '') {
@@ -2446,9 +2728,17 @@
}
return $insert_id;
}
-
-
+
protected function updateQuery($formdef_file, $client_id, $primary_id, $params, $event_identifier = '')
+ {
+ global $app;
+
+ $sql = $this->updateQueryPrepare($formdef_file, $client_id, $primary_id, $params);
+ if($sql !== false) return $this->updateQueryExecute($sql, $primary_id, $params,$event_identifier = '');
+ else return false;
+ }
+
+ protected function updateQueryPrepare($formdef_file, $client_id, $primary_id, $params)
{
global $app;
@@ -2467,6 +2757,15 @@
$this->server->fault('data_processing_error', $app->remoting_lib->errorMessage);
return false;
}
+
+ return $sql;
+ }
+
+ protected function updateQueryExecute($sql, $primary_id, $params, $event_identifier = '')
+ {
+ global $app;
+
+ $app->uses('remoting_lib');
$old_rec = $app->remoting_lib->getDataRecord($primary_id);
@@ -2494,7 +2793,7 @@
return $affected_rows;
}
-
+
protected function deleteQuery($formdef_file, $primary_id, $event_identifier = '')
{
global $app;
@@ -2769,7 +3068,7 @@
return false;
}
$client_id = intval($client_id);
- $sql = "SELECT d.database_id, d.database_name, d.database_user, d.database_password FROM web_database d INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id";
+ $sql = "SELECT d.database_id, d.database_name, d.database_user_id, d.database_ro_user_id, du.database_user, du.database_password FROM web_database d LEFT JOIN web_database_user du ON (du.database_user_id = d.database_user_id) INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id";
$all = $app->db->queryAllRecords($sql);
return $all;
}
--
Gitblit v1.9.1