From 1a58df6d5465130d1ce2a092d03060fe744042ed Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 28 Nov 2012 13:21:44 -0500
Subject: [PATCH] Fixed: FS#2555 - Mail domain delete function deletes forwards while it shall delete aliases only
---
interface/web/sites/database_edit.php | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index 1393aaf..393ec38 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -148,7 +148,7 @@
// When the record is updated
if($this->id > 0) {
// restore the server ID if the user is not admin and record is edited
- $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_database WHERE database_id = ".intval($this->id));
+ $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_database WHERE database_id = ".$app->functions->intval($this->id));
$this->dataRecord["server_id"] = $tmp["server_id"];
unset($tmp);
// When the record is inserted
@@ -166,7 +166,22 @@
}
}
- }
+ } 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'])."'");
+ 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'])."'");
+ 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'])."'");
+ if($group['sys_groupid'] != $web_group['sys_groupid']) {
+ $app->error($app->tform->wordbook['database_client_differs_txt']);
+ }
+ }
+ }
parent::onSubmit();
@@ -309,6 +324,7 @@
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);
@@ -320,7 +336,7 @@
global $app, $conf;
if($this->dataRecord["parent_domain_id"] > 0) {
- $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $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 = $web['sys_groupid'];
@@ -336,7 +352,7 @@
global $app, $conf;
if($this->dataRecord["parent_domain_id"] > 0) {
- $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $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 = $web['sys_groupid'];
--
Gitblit v1.9.1