From f669291d8a32dd78f7fb2ab05470c7a5c7e402bf Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Sat, 20 Dec 2008 09:53:53 -0500
Subject: [PATCH] Fixed spamfilter items that were not replicated to all servers they belong to.
---
install/lib/installer_base.lib.php | 1
install/dist/lib/fedora.lib.php | 1
install/dist/lib/opensuse.lib.php | 1
interface/web/mail/mail_domain_edit.php | 23 +++++------
interface/web/admin/server_config_edit.php | 3 -
interface/web/mail/mail_user_del.php | 19 ++++++++-
interface/web/mail/mail_user_edit.php | 17 +++-----
interface/web/mail/mail_domain_del.php | 6 ++
8 files changed, 43 insertions(+), 28 deletions(-)
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 89a35d0..e376d1f 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -596,6 +596,7 @@
if($conf['mysql']['master_slave_setup'] == 'y') {
$this->dbmaster->query($sql);
+ $this->db->query($sql);
} else {
$this->db->query($sql);
}
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 9426e37..6c3affd 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -614,6 +614,7 @@
if($conf['mysql']['master_slave_setup'] == 'y') {
$this->dbmaster->query($sql);
+ $this->db->query($sql);
} else {
$this->db->query($sql);
}
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index c8337ab..d75df9c 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -884,6 +884,7 @@
if($conf['mysql']['master_slave_setup'] == 'y') {
$this->dbmaster->query($sql);
+ $this->db->query($sql);
} else {
$this->db->query($sql);
}
diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php
index 052c982..6a5f6bf 100644
--- a/interface/web/admin/server_config_edit.php
+++ b/interface/web/admin/server_config_edit.php
@@ -83,8 +83,7 @@
$server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
$server_config_str = $app->ini_parser->get_ini_string($server_config_array);
- $sql = "UPDATE server SET config = '".$app->db->quote($server_config_str)."' WHERE server_id = ".$server_id;
- $app->db->query($sql);
+ $app->db->datalogUpdate('server', "SET config = '".$app->db->quote($server_config_str)."'", 'server_id', $server_id);
}
}
diff --git a/interface/web/mail/mail_domain_del.php b/interface/web/mail/mail_domain_del.php
index f9fbc09..1e62ac6 100644
--- a/interface/web/mail/mail_domain_del.php
+++ b/interface/web/mail/mail_domain_del.php
@@ -77,7 +77,11 @@
$app->db->datalogDelete('mail_user','mailuser_id',$rec['id']);
}
-
+ // Delete all spamfilters that belong to this domain
+ $records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($domain)."'");
+ foreach($records as $rec) {
+ $app->db->datalogDelete('spamfilter_users','id',$rec['id']);
+ }
}
}
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index 2e61de3..b5cbb15 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -163,14 +163,13 @@
$tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'");
if($tmp_user["id"] > 0) {
// There is already a record that we will update
- $sql = "UPDATE spamfilter_users SET policy_id = $ploicy_id WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogUpdate('spamfilter_users', "SET policy_id = $ploicy_id", 'id', $tmp_user["id"]);
} else {
$tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id);
// We create a new record
- $sql = "INSERT INTO `spamfilter_users` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
- VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')";
- $app->db->query($sql);
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
+ VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"
+ $app->db->datalogInsert('spamfilter_users', $insert_data, 'id');
unset($tmp_domain);
}
} // endif spamfilter policy
@@ -214,21 +213,19 @@
if($policy_id > 0) {
if($tmp_user["id"] > 0) {
// There is already a record that we will update
- $sql = "UPDATE spamfilter_users SET policy_id = $policy_id WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogUpdate('spamfilter_users', "SET policy_id = $ploicy_id", 'id', $tmp_user["id"]);
} else {
$tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id);
// We create a new record
- $sql = "INSERT INTO `spamfilter_users` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
- VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')";
- $app->db->query($sql);
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
+ VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"
+ $app->db->datalogInsert('spamfilter_users', $insert_data, 'id');
unset($tmp_domain);
}
- }else {
+ } else {
if($tmp_user["id"] > 0) {
// There is already a record but the user shall have no policy, so we delete it
- $sql = "DELETE FROM spamfilter_users WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]);
}
} // endif spamfilter policy
diff --git a/interface/web/mail/mail_user_del.php b/interface/web/mail/mail_user_del.php
index 26215cf..9b26933 100644
--- a/interface/web/mail/mail_user_del.php
+++ b/interface/web/mail/mail_user_del.php
@@ -45,7 +45,22 @@
//* Check permissions for module
$app->auth->check_module_permissions('mail');
-$app->uses("tform_actions");
-$app->tform_actions->onDelete();
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+class page_action extends tform_actions {
+
+ function onBeforeDelete() {
+ global $app; $conf;
+
+ $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '".mysql_real_escape_string($this->dataRecord["email"])."'");
+ $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]);
+
+ }
+}
+
+$page = new page_action;
+$page->onDelete();
?>
\ No newline at end of file
diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index cd3347a..7d91fd5 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -208,13 +208,12 @@
$tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '".mysql_real_escape_string($this->dataRecord["email"])."'");
if($tmp_user["id"] > 0) {
// There is already a record that we will update
- $sql = "UPDATE spamfilter_users SET policy_id = $ploicy_id WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogUpdate('spamfilter_users', "SET policy_id = $ploicy_id", 'id', $tmp_user["id"]);
} else {
// We create a new record
- $sql = "INSERT INTO `spamfilter_users` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
VALUES (".$_SESSION["s"]["user"]["userid"].", ".$domain["sys_groupid"].", 'riud', 'riud', '', ".$domain["server_id"].", 1, ".$policy_id.", '".mysql_real_escape_string($this->dataRecord["email"])."', '".mysql_real_escape_string($this->dataRecord["email"])."', 'Y')";
- $app->db->query($sql);
+ $app->db->datalogInsert('spamfilter_users', $insert_data, 'id');
}
} // endif spamfilter policy
@@ -234,19 +233,17 @@
if($policy_id > 0) {
if($tmp_user["id"] > 0) {
// There is already a record that we will update
- $sql = "UPDATE spamfilter_users SET policy_id = $policy_id WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogUpdate('spamfilter_users', "SET policy_id = $ploicy_id", 'id', $tmp_user["id"]);
} else {
// We create a new record
- $sql = "INSERT INTO `spamfilter_users` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`)
VALUES (".$_SESSION["s"]["user"]["userid"].", ".$domain["sys_groupid"].", 'riud', 'riud', '', ".$domain["server_id"].", 1, ".$policy_id.", '".mysql_real_escape_string($this->dataRecord["email"])."', '".mysql_real_escape_string($this->dataRecord["email"])."', 'Y')";
- $app->db->query($sql);
+ $app->db->datalogInsert('spamfilter_users', $insert_data, 'id');
}
}else {
if($tmp_user["id"] > 0) {
// There is already a record but the user shall have no policy, so we delete it
- $sql = "DELETE FROM spamfilter_users WHERE id = ".$tmp_user["id"];
- $app->db->query($sql);
+ $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]);
}
} // endif spamfilter policy
}
--
Gitblit v1.9.1