From 21ee812ca73de83d3a9338c9730ea7ce1a044f68 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 15:17:51 +0200
Subject: [PATCH] Fixed #4029 client_delete_everything API only database
 entries removed

---
 interface/lib/classes/db_mysql.inc.php        | 2 +-
 interface/lib/classes/remote.d/client.inc.php | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index b7aaed4e44..6af867edae 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -261,7 +261,6 @@ class db extends mysqli
 		$aArgs = func_get_args();
 		$sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs);
 		$this->securityScan($sQuery);
-
 		$this->_iQueryId = @mysqli_query($this->_iConnId, $sQuery);
 		if (!$this->_iQueryId) {
 			$this->_sqlerror('Falsche Anfrage / Wrong Query', 'SQL-Query = ' . $sQuery);
@@ -634,6 +633,7 @@ class db extends mysqli
 			$diffstr = serialize($diffrec_full);
 			$username = $_SESSION['s']['user']['username'];
 			$dbidx = $primary_field.':'.$primary_id;
+			if(trim($username) == '') $username = 'none';
 
 			if($action == 'INSERT') $action = 'i';
 			if($action == 'UPDATE') $action = 'u';
diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php
index 2099089f09..55850a5666 100644
--- a/interface/lib/classes/remote.d/client.inc.php
+++ b/interface/lib/classes/remote.d/client.inc.php
@@ -404,10 +404,9 @@ class remoting_client extends remoting {
 			$app->db->query("DELETE FROM sys_user WHERE client_id = ?", $client_id);
 
 			//* Delete all records (sub-clients, mail, web, etc....)  of this client.
-			$tables = 'cron,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,domain';
+			$tables = 'cron,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,domain,mail_mailinglist,client';
 			$tables_array = explode(',', $tables);
 			$client_group_id = $app->functions->intval($client_group['groupid']);
-
 			if($client_group_id > 1) {
 				foreach($tables_array as $table) {
 					if($table != '') {
@@ -418,7 +417,6 @@ class remoting_client extends remoting {
 						foreach($table_info as $tmp) {
 							if($tmp['option'] == 'primary') $index_field = $tmp['name'];
 						}
-
 						//* Delete the records
 						if($index_field != '') {
 							if(is_array($records)) {
@@ -441,7 +439,6 @@ class remoting_client extends remoting {
 			}
 
 		}
-
 		if (!$this->checkPerm($session_id, 'client_delete')) {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
-- 
GitLab