diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php index 2574ee8a4c7e620d71f105e6f74dea6763e9f43c..98c5bf63283e683e2167855bcac05f819c63b721 100644 --- a/interface/lib/classes/remote.d/sites.inc.php +++ b/interface/lib/classes/remote.d/sites.inc.php @@ -893,7 +893,65 @@ class remoting_sites extends remoting { $all = $app->db->queryAllRecords($sql); return $all; } - + + //** backup functions ----------------------------------------------------------------------------------- + public function sites_web_domain_backup_list($session_id, $site_id = null) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $result = $app->db->queryAllRecords("SELECT * FROM web_backup".(($site_id != null)?' WHERE parent_domain_id = ?':''), $app->functions->intval($site_id)); + return $result; + } + + //* Backup download and restoration by Abdi Joseph + public function sites_web_domain_backup($session_id, $primary_id, $action_type) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + //*Set variables + $backup_record = $app->db->queryOneRecord("SELECT * FROM `web_backup` WHERE `backup_id`= ?", $primary_id); + $server_id = $backup_record['server_id']; + + //*Set default action state + $action_state = "pending"; + $tstamp = time(); + + //* Basic validation of variables + if ($server_id <= 0) { + $this->server->fault('invalid_backup_id', "Invalid or non existant backup_id $primary_id"); + return false; + } + + if ($action_type != 'backup_download' and $action_type != 'backup_restore') { + $this->server->fault('invalid_action', "Invalid action_type $action_type"); + return false; + } + + //* Validate instance + $instance_record = $app->db->queryOneRecord("SELECT * FROM `sys_remoteaction` WHERE `action_param`= ? and `action_type`= ? and `action_state`= ?", $primary_id, $action_type, 'pending'); + if ($instance_record['action_id'] >= 1) { + $this->server->fault('duplicate_action', "There is already a pending $action_type action"); + return false; + } + + //* Save the record + if ($app->db->query("INSERT INTO `sys_remoteaction` SET `server_id` = ?, `tstamp` = ?, `action_type` = ?, `action_param` = ?, `action_state` = ?", $server_id, $tstamp, $action_type, $primary_id, $action_state)) { + return true; + } else { + return false; + } + } + //** quota functions ----------------------------------------------------------------------------------- public function quota_get_by_user($session_id, $client_id) { diff --git a/interface/web/sites/lib/remote.conf.php b/interface/web/sites/lib/remote.conf.php index 10a4640137a03f3e478306027c276f4f05fe295e..30e41b929220b2ef939bccacaa71d1543ddc946d 100644 --- a/interface/web/sites/lib/remote.conf.php +++ b/interface/web/sites/lib/remote.conf.php @@ -5,6 +5,7 @@ $function_list['sites_web_folder_get,sites_web_folder_add,sites_web_folder_updat $function_list['sites_ftp_user_get,sites_ftp_user_server_get,sites_ftp_user_add,sites_ftp_user_update,sites_ftp_user_delete'] = 'Sites FTP-User functions'; $function_list['sites_shell_user_get,sites_shell_user_add,sites_shell_user_update,sites_shell_user_delete'] = 'Sites Shell-User functions'; $function_list['sites_web_domain_get,sites_web_domain_add,sites_web_domain_update,sites_web_domain_delete,sites_web_domain_set_status'] = 'Sites Domain functions'; +$function_list['sites_web_domain_backup'] = 'Sites Backup functions'; $function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; $function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; diff --git a/remoting_client/API-docs/navigation.html b/remoting_client/API-docs/navigation.html index 27f9f244efe0a879f5e9573d3883eab14ed5135e..e0eebb000eaa73a80d86a910d108edb3b99e2e26 100644 --- a/remoting_client/API-docs/navigation.html +++ b/remoting_client/API-docs/navigation.html @@ -226,6 +226,8 @@

sites_web_domain_get

sites_web_domain_set_status

sites_web_domain_update

+ p>sites_web_domain_backup_list

+

sites_web_domain_backup

sites_web_subdomain_add

sites_web_subdomain_delete

sites_web_subdomain_get

diff --git a/remoting_client/API-docs/sites_web_domain_backup.html b/remoting_client/API-docs/sites_web_domain_backup.html new file mode 100644 index 0000000000000000000000000000000000000000..96ddba6964af6cfcf0a3e919061c27c5c2251a2b --- /dev/null +++ b/remoting_client/API-docs/sites_web_domain_backup.html @@ -0,0 +1,26 @@ + +ISCPConfig 3 API Functions + + + + + + + + + + +
+

sites_web_domain_backup($session_id, $primary_id, $action_type);

+
+

Description:

+

Adds a new backup / restore task. Please note: $action_type is either backup_download or backup_restore

+
+

Input Variables:

+

$session_id, $primary_id, $action_type

+

Output:

+

Returns TRUE if successfull or FALSE if failure.

+
+ + diff --git a/remoting_client/API-docs/sites_web_domain_backup_list.html b/remoting_client/API-docs/sites_web_domain_backup_list.html new file mode 100644 index 0000000000000000000000000000000000000000..7498900d8199c653b1d326b2614a849292b1f22c --- /dev/null +++ b/remoting_client/API-docs/sites_web_domain_backup_list.html @@ -0,0 +1,26 @@ + +ISCPConfig 3 API Functions + + + + + + + + + + +
+

sites_web_domain_backup_list($session_id, $site_id);

+
+

Description:

+

Gets list of all available backups. If no $site_id given, all backups available on this server are read.

+
+

Input Variables:

+

$session_id, $site_id

+

Output:

+

Returns array of all available backups.

+
+ +