From 5720a59824953dd0fde12e850ce9bd769a3ab3d8 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 13 Feb 2013 11:39:06 -0500 Subject: [PATCH] - Fixed FS#2639 - App Installer: Apps not deleted from ISPConfig if website is deleted. -Fixed FS#2672 - Rename website - APS instance domain must be renamed as well. --- interface/web/sites/web_domain_edit.php | 13 ++++++++++++- interface/web/sites/web_domain_del.php | 32 ++++++++++++++++++++------------ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/interface/web/sites/web_domain_del.php b/interface/web/sites/web_domain_del.php index 3f3a49a..cefb0ec 100644 --- a/interface/web/sites/web_domain_del.php +++ b/interface/web/sites/web_domain_del.php @@ -55,48 +55,56 @@ if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - //* Delete all records that belog to this zone. + //* Delete all records that belong to this web. $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE parent_domain_id = '".$app->functions->intval($this->id)."' AND type != 'vhost'"); foreach($records as $rec) { $app->db->datalogDelete('web_domain','domain_id',$rec['domain_id']); } - //* Delete all records that belog to this zone. + //* Delete all records that belong to this web. $records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('ftp_user','ftp_user_id',$rec['ftp_user_id']); } - //* Delete all records that belog to this web. + //* Delete all records that belong to this web. $records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('shell_user','shell_user_id',$rec['shell_user_id']); } - //* Delete all records that belog to this web. + //* Delete all records that belong to this web. $records = $app->db->queryAllRecords("SELECT id FROM cron WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('cron','id',$rec['id']); } - //* Delete all records that belog to this web. - $records = $app->db->queryAllRecords("SELECT id FROM cron WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('cron','id',$rec['id']); - } - - //* Delete all records that belog to this web + //* Delete all records that belong to this web $records = $app->db->queryAllRecords("SELECT webdav_user_id FROM webdav_user WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('webdav_user','webdav_user_id',$rec['webdav_user_id']); } - //* Delete all records that belog to this web + //* Delete all records that belong to this web $records = $app->db->queryAllRecords("SELECT backup_id FROM web_backup WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('web_backup','backup_id',$rec['backup_id']); } + //* Delete all records that belog to this web. + $web_domain = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($web_domain['domain'] != ''){ + $aps_instances = $app->db->queryAllRecords("SELECT instance_id FROM aps_instances_settings WHERE name = 'main_domain' AND value = '".$web_domain['domain']."'"); + if(is_array($aps_instances) && !empty($aps_instances)){ + foreach($aps_instances as $aps_instance){ + if($aps_instance['instance_id'] > 0){ + $app->db->datalogDelete('aps_instances_settings','instance_id',$aps_instance['instance_id']); + $app->db->datalogDelete('aps_instances','id',$aps_instance['instance_id']); + } + } + } + } + //* Delete all web folders $records = $app->db->queryAllRecords("SELECT web_folder_id FROM web_folder WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); foreach($records as $rec) { diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index c714fa3..20cdb7e 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -832,7 +832,7 @@ } - //* If the domain name has been changed, we will have to change all subdomains + //* If the domain name has been changed, we will have to change all subdomains + APS instances if(!empty($this->dataRecord["domain"]) && !empty($this->oldDataRecord["domain"]) && $this->dataRecord["domain"] != $this->oldDataRecord["domain"]) { $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE (type = 'subdomain' OR type = 'vhostsubdomain') AND domain LIKE '%.".$app->db->quote($this->oldDataRecord["domain"])."'"); foreach($records as $rec) { @@ -842,6 +842,17 @@ unset($records); unset($rec); unset($subdomain); + + // Update APS instances + $records = $app->db->queryAllRecords("SELECT id, instance_id FROM aps_instances_settings WHERE name = 'main_domain' AND value = '".$this->oldDataRecord["domain"]."'"); + if(is_array($records) && !empty($records)){ + foreach($records as $rec){ + $app->db->datalogUpdate('aps_instances_settings', "value = '".$this->dataRecord["domain"]."'", 'id', $rec['id']); + $app->db->datalogUpdate('aps_instances', "instance_status = '1'", 'id', $rec['instance_id']); + } + } + unset($records); + unset($rec); } //* Set allow_override if empty -- Gitblit v1.9.1