From c8d077e42aaadd9dd3f03b0daca88412a789c3e7 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 02 Oct 2012 08:12:15 -0400
Subject: [PATCH] Fixed: FS#2344 - Add table permissions in multiserver systems for new backup table

---
 install/lib/installer_base.lib.php |    8 ++++++++
 server/cron_daily.php              |   26 +++++++++++++++++++-------
 2 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index ee45301..399e7dd 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -478,6 +478,14 @@
 			if(!$this->dbmaster->query($query)) {
 				$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
 			}
+			
+			$query = "GRANT SELECT, INSERT, DELETE ON ".$value['db'].".`web_backup` TO '".$value['user']."'@'".$host."' ";
+			if ($verbose){
+				echo $query ."\n";
+			}
+			if(!$this->dbmaster->query($query)) {
+				$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
+			}
 
 		}
 
diff --git a/server/cron_daily.php b/server/cron_daily.php
index 0ba19fb..04fc0d8 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -629,9 +629,12 @@
 				chmod($web_backup_dir.'/'.$web_backup_file, 0750);
 
 				//* Insert web backup record in database
-				$insert_data = "(server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",".$web_id.",'web','".$backup_mode."',".time().",'".$app->db->quote($web_backup_file)."')";
-				$app->dbmaster->datalogInsert('web_backup', $insert_data, 'backup_id');
-
+				//$insert_data = "(server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",".$web_id.",'web','".$backup_mode."',".time().",'".$app->db->quote($web_backup_file)."')";
+				//$app->dbmaster->datalogInsert('web_backup', $insert_data, 'backup_id');
+				$sql = "INSERT INTO web_backup (server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",".$web_id.",'web','".$backup_mode."',".time().",'".$app->db->quote($web_backup_file)."')";
+				$app->db->query($sql);
+				$app->dbmaster->query($sql);
+				
 				//* Remove old backups
 				$backup_copies = intval($rec['backup_copies']);
 
@@ -651,7 +654,10 @@
 						unlink($web_backup_dir.'/'.$files[$n]);
 						$sql = "SELECT backup_id FROM web_backup WHERE server_id = ".$conf['server_id']." AND parent_domain_id = $web_id AND filename = '".$app->db->quote($files[$n])."'";
 						$tmp = $app->dbmaster->queryOneRecord($sql);
-						$app->dbmaster->datalogDelete('web_backup', 'backup_id', $tmp['backup_id']);
+						//$app->dbmaster->datalogDelete('web_backup', 'backup_id', $tmp['backup_id']);
+						$sql = "DELETE FROM web_backup WHERE backup_id = ".intval($tmp['backup_id']);
+						$app->db->query($sql);
+						$app->dbmaster->query($sql);
 					}
 				}
 
@@ -715,8 +721,11 @@
 				chgrp($db_backup_dir.'/'.$db_backup_file.'.gz', filegroup($db_backup_dir));
 
 				//* Insert web backup record in database
-				$insert_data = "(server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",$web_id,'mysql','sqlgz',".time().",'".$app->db->quote($db_backup_file).".gz')";
-				$app->dbmaster->datalogInsert('web_backup', $insert_data, 'backup_id');
+				//$insert_data = "(server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",$web_id,'mysql','sqlgz',".time().",'".$app->db->quote($db_backup_file).".gz')";
+				//$app->dbmaster->datalogInsert('web_backup', $insert_data, 'backup_id');
+				$sql = "INSERT INTO web_backup (server_id,parent_domain_id,backup_type,backup_mode,tstamp,filename) VALUES (".$conf['server_id'].",$web_id,'mysql','sqlgz',".time().",'".$app->db->quote($db_backup_file).".gz')";
+				$app->db->query($sql);
+				$app->dbmaster->query($sql);
 
 				//* Remove the uncompressed file
 				unlink($db_backup_dir.'/'.$db_backup_file);
@@ -740,7 +749,10 @@
 						unlink($db_backup_dir.'/'.$files[$n]);
 						$sql = "SELECT backup_id FROM web_backup WHERE server_id = ".$conf['server_id']." AND parent_domain_id = $web_id AND filename = '".$app->db->quote($files[$n])."'";
 						$tmp = $app->dbmaster->queryOneRecord($sql);
-						$app->dbmaster->datalogDelete('web_backup', 'backup_id', $tmp['backup_id']);
+						//$app->dbmaster->datalogDelete('web_backup', 'backup_id', $tmp['backup_id']);
+						$sql = "DELETE FROM web_backup WHERE backup_id = ".intval($tmp['backup_id']);
+						$app->db->query($sql);
+						$app->dbmaster->query($sql);
 					}
 				}
 

--
Gitblit v1.9.1