From dd0130670fe3cab4c7e2c1ab4f3bf0d2b2d512b0 Mon Sep 17 00:00:00 2001
From: Denny Bortfeldt <denny@bortfeldt.net>
Date: Mon, 27 Jun 2016 18:02:16 -0400
Subject: [PATCH] When uploading a logo which is smaller than the current ispconfig one, then the logo will be on the left side of the header. In my opinion it will look better when it's centered. You could vote about it ;)

---
 interface/web/sites/database_edit.php |  132 ++++++++++++++++++++-----------------------
 1 files changed, 62 insertions(+), 70 deletions(-)

diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index 79183c4..213063a 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -79,7 +79,7 @@
 			$client = $app->db->queryOneRecord("SELECT db_servers FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
 
 			// Set the webserver to the default server of the client
-			$tmp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE server_id IN ($client[db_servers])");
+			$tmp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE server_id IN ?", explode(',', $client['db_servers']));
 
 			$only_one_server = count($tmp) === 1;
 			$app->tpl->setVar('only_one_server', $only_one_server);
@@ -89,7 +89,7 @@
 			}
 
 			foreach ($tmp as $db_server) {
-				$options_db_servers .= "<option value='$db_server[server_id]'>$db_server[server_name]</option>";
+				$options_db_servers .= '<option value="'.$db_server['server_id'].'"'.($this->id > 0 && $this->dataRecord["server_id"] == $db_server['server_id'] ? ' selected="selected"' : '').'>'.$db_server['server_name'].'</option>';
 			}
 
 			$app->tpl->setVar("server_id", $options_db_servers);
@@ -102,7 +102,7 @@
 			$client = $app->db->queryOneRecord("SELECT client.client_id, limit_web_domain, db_servers, contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
 
 			// Set the webserver to the default server of the client
-			$tmp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE server_id IN ($client[db_servers])");
+			$tmp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE server_id IN ?", explode(',', $client['db_servers']));
 
 			$only_one_server = count($tmp) === 1;
 			$app->tpl->setVar('only_one_server', $only_one_server);
@@ -112,7 +112,7 @@
 			}
 
 			foreach ($tmp as $db_server) {
-				$options_db_servers .= "<option value='$db_server[server_id]'>$db_server[server_name]</option>";
+				$options_db_servers .= '<option value="'.$db_server['server_id'].'"'.($this->id > 0 && $this->dataRecord["server_id"] == $db_server['server_id'] ? ' selected="selected"' : '').'>'.$db_server['server_name'].'</option>';
 			}
 
 			$app->tpl->setVar("server_id", $options_db_servers);
@@ -146,11 +146,16 @@
 			$app->tpl->setVar("database_name", $app->tools_sites->removePrefix($this->dataRecord['database_name'], $this->dataRecord['database_name_prefix'], $dbname_prefix));
 		}
 
-		$app->tpl->setVar("database_name_prefix", $app->tools_sites->getPrefix($this->dataRecord['database_name_prefix'], $dbname_prefix, $global_config['dbname_prefix']));
+		if($this->dataRecord['database_name'] == "") {
+			$app->tpl->setVar("database_name_prefix", $dbname_prefix);
+		} else {
+			$app->tpl->setVar("database_name_prefix", $app->tools_sites->getPrefix($this->dataRecord['database_name_prefix'], $dbname_prefix, $global_config['dbname_prefix']));
+		}
 
 		if($this->id > 0) {
 			//* we are editing a existing record
-			$app->tpl->setVar("edit_disabled", 1);
+			$edit_disabled = @($_SESSION["s"]["user"]["typ"] == 'admin')? 0 : 1; //* admin can change the database-name
+			$app->tpl->setVar("edit_disabled", $edit_disabled);
 			$app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]);
 			$app->tpl->setVar("database_charset_value", $this->dataRecord["database_charset"]);
 			$app->tpl->setVar("limit_database_quota", $this->dataRecord["database_quota"]);
@@ -164,13 +169,13 @@
 	function onSubmit() {
 		global $app, $conf;
 
-		$parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
+		$parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), @$this->dataRecord["parent_domain_id"]);
 		if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
 
 		if($_SESSION["s"]["user"]["typ"] != 'admin') {
 			// Get the limits of the client
 			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			$client = $app->db->queryOneRecord("SELECT db_servers, limit_database, limit_database_quota FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = $client_group_id");
+			$client = $app->db->queryOneRecord("SELECT db_servers, limit_database, limit_database_quota, parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?", $client_group_id);
 
 			// When the record is updated
 			if($this->id > 0) {
@@ -199,6 +204,33 @@
 					unset($tmp);
 					unset($global_config);
 					unset($dbname_prefix);
+				}
+
+				if($client['parent_client_id'] > 0) {
+					// Get the limits of the reseller
+					$reseller = $app->db->queryOneRecord("SELECT limit_database, limit_database_quota FROM client WHERE client_id = ?", $client['parent_client_id']);
+
+					//* Check the website quota of the client
+					if ($reseller['limit_database_quota'] >= 0) {
+						//* get the database prefix
+						$app->uses('getconf,tools_sites');
+						$global_config = $app->getconf->get_global_config('sites');
+						$dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $this->dataRecord);
+						//* get quota from other databases
+						$tmp = $app->db->queryOneRecord("SELECT sum(database_quota) as db_quota FROM web_database, sys_group, client WHERE web_database.sys_groupid=sys_group.groupid AND sys_group.client_id=client.client_id AND ? IN (client.parent_client_id, client.client_id) AND database_name <> ?", $client['parent_client_id'], $dbname_prefix.$this->dataRecord['database_name']);
+
+						$used_quota = $app->functions->intval($tmp['db_quota']);
+						$new_db_quota = $app->functions->intval($this->dataRecord["database_quota"]);
+						if(($used_quota + $new_db_quota > $reseller["limit_database_quota"]) || ($new_db_quota < 0 && $reseller["limit_database_quota"] >= 0)) {
+							$max_free_quota = floor($reseller["limit_database_quota"] - $used_quota);
+							if($max_free_quota < 0) $max_free_quota = 0;
+							$app->tform->errorMessage .= $app->tform->lng("limit_database_quota_free_txt").": ".$max_free_quota." MB<br>";
+							$this->dataRecord["database_quota"] = $max_free_quota;
+						}
+						unset($tmp);
+						unset($global_config);
+						unset($dbname_prefix);
+					}
 				}
 				// When the record is inserted
 			} else {
@@ -230,19 +262,18 @@
 					}
 					unset($tmp);
 				}
-
 			}
 		} else {
 			// check if client of database parent domain is client of db user!
-			$web_group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = '".$app->functions->intval($this->dataRecord['parent_domain_id'])."'");
+			$web_group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ?", $this->dataRecord['parent_domain_id']);
 			if($this->dataRecord['database_user_id']) {
-				$group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_database_user WHERE database_user_id = '".$app->functions->intval($this->dataRecord['database_user_id'])."'");
+				$group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_database_user WHERE database_user_id = ?", $this->dataRecord['database_user_id']);
 				if($group['sys_groupid'] != $web_group['sys_groupid']) {
 					$app->error($app->tform->wordbook['database_client_differs_txt']);
 				}
 			}
 			if($this->dataRecord['database_ro_user_id']) {
-				$group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_database_user WHERE database_user_id = '".$app->functions->intval($this->dataRecord['database_ro_user_id'])."'");
+				$group = $app->db->queryOneRecord("SELECT sys_groupid FROM web_database_user WHERE database_user_id = ?", $this->dataRecord['database_ro_user_id']);
 				if($group['sys_groupid'] != $web_group['sys_groupid']) {
 					$app->error($app->tform->wordbook['database_client_differs_txt']);
 				}
@@ -269,8 +300,11 @@
 		$dbname_prefix = $app->tools_sites->getPrefix($old_record['database_name_prefix'], $dbname_prefix);
 		$this->dataRecord['database_name_prefix'] = $dbname_prefix;
 
-		if($old_record["database_name"] != $dbname_prefix . $this->dataRecord["database_name"]) {
-			$app->tform->errorMessage .= $app->tform->wordbook["database_name_change_txt"].'<br />';
+		//* Only admin can change the database name
+		if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+			if($old_record["database_name"] != $dbname_prefix . $this->dataRecord["database_name"]) {
+				$app->tform->errorMessage .= $app->tform->wordbook["database_name_change_txt"].'<br />';
+			}
 		}
 		if($old_record["database_charset"] != $this->dataRecord["database_charset"]) {
 			$app->tform->errorMessage .= $app->tform->wordbook["database_charset_change_txt"].'<br />';
@@ -309,24 +343,16 @@
 		}
 
 		//* Check for duplicates
-		$tmp = $app->db->queryOneRecord("SELECT count(database_id) as dbnum FROM web_database WHERE database_name = '".$app->db->quote($this->dataRecord['database_name'])."' AND server_id = '".$app->functions->intval($this->dataRecord["server_id"])."' AND database_id != '".$this->id."'");
+		$tmp = $app->db->queryOneRecord("SELECT count(database_id) as dbnum FROM web_database WHERE database_name = ? AND server_id = ? AND database_id != ?", $this->dataRecord['database_name'], $this->dataRecord["server_id"], $this->id);
 		if($tmp['dbnum'] > 0) $app->tform->errorMessage .= $app->lng('database_name_error_unique').'<br />';
 
 		// get the web server ip (parent domain)
-		$tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = '".$app->functions->intval($this->dataRecord['parent_domain_id'])."'");
+		$tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ?", $this->dataRecord['parent_domain_id']);
 		if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) {
 			// we need remote access rights for this server, so get it's ip address
 			$server_config = $app->getconf->get_server_config($tmp['server_id'], 'server');
 			if($server_config['ip_address']!='') {
-				/*
-                if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = '';
-                $this->dataRecord['remote_access'] = 'y';
-                if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) {
-                    $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address'];
-                }
-				*/
-
-				if(isset($this->dataRecord['remote_access']) && $this->dataRecord['remote_access'] != 'y'){
+				if($this->dataRecord['remote_access'] != 'y'){
 					$this->dataRecord['remote_ips'] = $server_config['ip_address'];
 					$this->dataRecord['remote_access'] = 'y';
 				} else {
@@ -346,7 +372,7 @@
 		if ($app->tform->errorMessage == '') {
 			// force update of the used database user
 			if($this->dataRecord['database_user_id']) {
-				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ' . $app->functions->intval($this->dataRecord['database_user_id']));
+				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ?', $this->dataRecord['database_user_id']);
 				if($user_old_rec) {
 					$user_new_rec = $user_old_rec;
 					$user_new_rec['server_id'] = $this->dataRecord['server_id'];
@@ -354,7 +380,7 @@
 				}
 			}
 			if($this->dataRecord['database_ro_user_id']) {
-				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ' . $app->functions->intval($this->dataRecord['database_ro_user_id']));
+				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ?', $this->dataRecord['database_ro_user_id']);
 				if($user_old_rec) {
 					$user_new_rec = $user_old_rec;
 					$user_new_rec['server_id'] = $this->dataRecord['server_id'];
@@ -396,24 +422,16 @@
 		}
 
 		//* Check for duplicates
-		$tmp = $app->db->queryOneRecord("SELECT count(database_id) as dbnum FROM web_database WHERE database_name = '".$app->db->quote($this->dataRecord['database_name'])."' AND server_id = '".$app->functions->intval($this->dataRecord["server_id"])."'");
+		$tmp = $app->db->queryOneRecord("SELECT count(database_id) as dbnum FROM web_database WHERE database_name = ? AND server_id = ?", $this->dataRecord['database_name'], $this->dataRecord["server_id"]);
 		if($tmp['dbnum'] > 0) $app->tform->errorMessage .= $app->tform->lng('database_name_error_unique').'<br />';
 
 		// get the web server ip (parent domain)
-		$tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = '".$app->functions->intval($this->dataRecord['parent_domain_id'])."'");
+		$tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ?", $this->dataRecord['parent_domain_id']);
 		if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) {
 			// we need remote access rights for this server, so get it's ip address
 			$server_config = $app->getconf->get_server_config($tmp['server_id'], 'server');
 			if($server_config['ip_address']!='') {
-				/*
-                if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = '';
-                $this->dataRecord['remote_access'] = 'y';
-                if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) {
-                    $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address'];
-                }
-				*/
-
-				if(isset($this->dataRecord['remote_access']) && $this->dataRecord['remote_access'] != 'y'){
+				if($this->dataRecord['remote_access'] != 'y'){
 					$this->dataRecord['remote_ips'] = $server_config['ip_address'];
 					$this->dataRecord['remote_access'] = 'y';
 				} else {
@@ -433,7 +451,7 @@
 		if ($app->tform->errorMessage == '') {
 			// force update of the used database user
 			if($this->dataRecord['database_user_id']) {
-				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ' . $app->functions->intval($this->dataRecord['database_user_id']));
+				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ?', $this->dataRecord['database_user_id']);
 				if($user_old_rec) {
 					$user_new_rec = $user_old_rec;
 					$user_new_rec['server_id'] = $this->dataRecord['server_id'];
@@ -441,7 +459,7 @@
 				}
 			}
 			if($this->dataRecord['database_ro_user_id']) {
-				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ' . $app->functions->intval($this->dataRecord['database_ro_user_id']));
+				$user_old_rec = $app->db->queryOneRecord('SELECT * FROM `web_database_user` WHERE `database_user_id` = ?', $this->dataRecord['database_ro_user_id']);
 				if($user_old_rec) {
 					$user_new_rec = $user_old_rec;
 					$user_new_rec['server_id'] = $this->dataRecord['server_id'];
@@ -457,10 +475,6 @@
 	function onInsertSave($sql) {
 		global $app, $conf;
 
-		$app->uses('sites_database_plugin');
-
-		//$app->sites_database_plugin->processDatabaseInsert($this);
-
 		$app->db->query($sql);
 		if($app->db->errorMessage != '') die($app->db->errorMessage);
 		$new_id = $app->db->insertID();
@@ -472,9 +486,6 @@
 		global $app;
 		if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(), $this->id)) {
 
-			$app->uses('sites_database_plugin');
-			//$app->sites_database_plugin->processDatabaseUpdate($this);
-
 			$app->db->query($sql);
 			if($app->db->errorMessage != '') die($app->db->errorMessage);
 		}
@@ -483,34 +494,15 @@
 	function onAfterInsert() {
 		global $app, $conf;
 
-		if($this->dataRecord["parent_domain_id"] > 0) {
-			$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"]));
-
-			//* The Database user shall be owned by the same group then the website
-			$sys_groupid = $app->functions->intval($web['sys_groupid']);
-			$backup_interval = $app->db->quote($web['backup_interval']);
-			$backup_copies = $app->functions->intval($web['backup_copies']);
-
-			$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
-			$app->db->query($sql);
-		}
+		$app->uses('sites_database_plugin');
+		$app->sites_database_plugin->processDatabaseInsert($this);
 	}
 
 	function onAfterUpdate() {
 		global $app, $conf;
 
-		if($this->dataRecord["parent_domain_id"] > 0) {
-			$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"]));
-
-			//* The Database user shall be owned by the same group then the website
-			$sys_groupid = $app->functions->intval($web['sys_groupid']);
-			$backup_interval = $app->db->quote($web['backup_interval']);
-			$backup_copies = $app->functions->intval($web['backup_copies']);
-
-			$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
-			$app->db->query($sql);
-		}
-
+		$app->uses('sites_database_plugin');
+		$app->sites_database_plugin->processDatabaseUpdate($this);
 	}
 
 }

--
Gitblit v1.9.1