From f1b9899062306c1cf0ba3e7781393b305862feb1 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 18 Aug 2008 19:01:08 +0000
Subject: [PATCH] FS#149 - error in expert installation

---
 install/install.php                |  2 +-
 install/lib/installer_base.lib.php | 12 ++++++------
 install/uninstall.php              |  4 +++-
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/install/install.php b/install/install.php
index 99c60b8356..2958a038ed 100644
--- a/install/install.php
+++ b/install/install.php
@@ -224,7 +224,7 @@ if($install_mode == 'Standard') {
 	if(strtolower($inst->simple_query('Create a new database? (We do not want to join a existing ISPConfig server setup)',array('y','n'),'y')) == 'y') {
 		//* Create the mysql database
 		$inst->configure_database();
-		system('/etc/init.d/mysql restart');
+		//system('/etc/init.d/mysql restart');
 	}
 		
 	//* Insert the Server record into the database
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 08a1b84d08..7b38923be4 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -157,17 +157,17 @@ class installer_base {
 			$from_host = $conf['hostname'];
 		}
 		
+		// Delete ISPConfig user, in case that it exists
+		$this->db->query("DELETE FROM mysql.user WHERE User = '".$cf['ispconfig_user']."' AND Host = '".$from_host."';");
+		$this->db->query("DELETE FROM mysql.db WHERE Db = '".$cf['database']."' AND Host = '".$from_host."';");
+		$this->db->query('FLUSH PRIVILEGES;');
+		
 		//* Create the ISPConfig database user
         $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$cf['database'].".* "
                 ."TO '".$cf['ispconfig_user']."'@'".$from_host."' "
                 ."IDENTIFIED BY '".$cf['ispconfig_password']."';";
 		if(!$this->db->query($query)) {
-			$tmp = $this->db->queryOneRecord("SELECT * from mysql.user WHERE User = '".$cf['ispconfig_user']."' AND Host = '$from_host'");
-			if($tmp["User"] == $cf['ispconfig_user']) {
-				$this->db->query("UPDATE mysql.user SET `password` = PASSWORD('".$cf['ispconfig_password']."') WHERE User = '".$cf['ispconfig_user']."' AND Host = '$from_host'");
-			} else {
-				$this->error('Unable to create database user: '.$cf['ispconfig_user']);
-			}
+			$this->error('Unable to create database user: '.$cf['ispconfig_user'].' Error: '.$this->db->errorMessage);
 		}
 		
 		//* Reload database privelages
diff --git a/install/uninstall.php b/install/uninstall.php
index 5987845723..0aa488ce9c 100644
--- a/install/uninstall.php
+++ b/install/uninstall.php
@@ -33,7 +33,7 @@ require("/usr/local/ispconfig/server/lib/app.inc.php");
 
 // Delete the ISPConfig database
 // $app->db->query("DROP DATABASE '".$conf["db_database"]."'");
-$app->db->query("DELETE FROM mysql.user WHERE User = 'ispconfig'");
+// $app->db->query("DELETE FROM mysql.user WHERE User = 'ispconfig'");
 
 
 exec("/etc/init.d/mysql stop");
@@ -47,6 +47,8 @@ unlink("/etc/apache2/sites-available/ispconfig.vhost");
 // Delete the ispconfig files
 exec('rm -rf /usr/local/ispconfig');
 
+echo "Please do not forget to delete the ispconfig user in the mysql.user table.\n\n";
+
 echo "Finished.\n";
 
 ?>
\ No newline at end of file
-- 
GitLab