From f669291d8a32dd78f7fb2ab05470c7a5c7e402bf Mon Sep 17 00:00:00 2001 From: tbrehm Date: Sat, 20 Dec 2008 14:53:53 +0000 Subject: [PATCH] Fixed spamfilter items that were not replicated to all servers they belong to. --- install/dist/lib/fedora.lib.php | 1 + install/dist/lib/opensuse.lib.php | 1 + install/lib/installer_base.lib.php | 1 + interface/web/admin/server_config_edit.php | 3 +-- interface/web/mail/mail_domain_del.php | 6 +++++- interface/web/mail/mail_domain_edit.php | 23 ++++++++++------------ interface/web/mail/mail_user_del.php | 19 ++++++++++++++++-- interface/web/mail/mail_user_edit.php | 17 +++++++--------- 8 files changed, 43 insertions(+), 28 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 89a35d0677..e376d1ff07 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -596,6 +596,7 @@ class installer_dist extends installer_base { 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 9426e3709b..6c3affdeb1 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -614,6 +614,7 @@ class installer_dist extends installer_base { 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 c8337ab892..d75df9c904 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -884,6 +884,7 @@ class installer_base { 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 052c9826c6..6a5f6bf2bc 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -83,8 +83,7 @@ class page_action extends tform_actions { $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 f9fbc09738..1e62ac6284 100644 --- a/interface/web/mail/mail_domain_del.php +++ b/interface/web/mail/mail_domain_del.php @@ -77,7 +77,11 @@ class page_action extends tform_actions { $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 2e61de34e6..b5cbb159b3 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -163,14 +163,13 @@ class page_action extends tform_actions { $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 @@ class page_action extends tform_actions { 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 26215cf09f..9b26933ae8 100644 --- a/interface/web/mail/mail_user_del.php +++ b/interface/web/mail/mail_user_del.php @@ -45,7 +45,22 @@ require_once('../../lib/app.inc.php'); //* 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 cd3347a0fa..7d91fd507e 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -208,13 +208,12 @@ class page_action extends tform_actions { $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 @@ class page_action extends tform_actions { 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 } -- GitLab