diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 8e6cfca07b494eb3bb07034e164baf0315ca6d37..f8facc05a31f166f69189ccaf2f97233288161cd 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2098,6 +2098,18 @@ class installer_base extends stdClass { $tpl->setVar('rspamd_password', $rspamd_password); wf('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); chmod('/etc/rspamd/local.d/worker-controller.inc', 0644); + + // rspamd.local.lua + if(file_exists($conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd.local.lua.master")) { + exec('cp '.$conf['ispconfig_install_dir']."/server/conf-custom/install/rspamd.local.lua.master /etc/rspamd/rspamd.local.lua"); + } else { + exec("cp tpl/rspamd.local.lua.master /etc/rspamd/rspamd.local.lua"); + } + if(file_exists('/etc/rspamd/rspamd.local.lua')) { + exec('chgrp _rspamd /etc/rspamd/rspamd.local.lua'); + exec('chmod 640 /etc/rspamd/rspamd.local.lua'); + } + } public function configure_spamassassin() { diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 37cf2312fe6d7085f9489c65e9666529925a4e06..935e802cfa0220b222a7bf7026ada51de7a31fe2 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,2 +1,5 @@ +INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon Trust Services', 'amazontrust.com', 'Y', '', 0); +-- 5374-mail-last-accessed-frontend ALTER TABLE `mail_user` ADD `last_access` int(11) NULL DEFAULT NULL after `disabledoveadm`; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index d59dffbb9a0b137eb208925a9ab6bf07d13a274b..81e875d472e5d77501f71dd18d125cb6ede84b20 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -559,6 +559,7 @@ INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `s (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon Trust Services', 'amazontrust.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), diff --git a/install/tpl/rspamd.local.lua.master b/install/tpl/rspamd.local.lua.master new file mode 100644 index 0000000000000000000000000000000000000000..e0205b8ce65922424d9dcabe87c4b0f4db95919d --- /dev/null +++ b/install/tpl/rspamd.local.lua.master @@ -0,0 +1,7 @@ +rspamd_config.R_DUMMY = { + callback = function(task) + return true + end, + score = 0, + description = 'dummy symbol', +} \ No newline at end of file diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 9a7cf7129f9daec35a6714d74e495974dba6aa29..27fbd117db6fbc0a1a19001d52f00f6e524a52ca 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -847,7 +847,7 @@ class db $result = $this->queryAllRecords("SELECT COUNT( * ) AS cnt, sys_datalog.action, sys_datalog.dbtable FROM sys_datalog, server - WHERE (server.server_id = sys_datalog.server_id or sys_datalog.server_id = 0) AND sys_datalog.user = ? AND sys_datalog.datalog_id > server.updated + WHERE (server.server_id = sys_datalog.server_id or sys_datalog.server_id = 0) AND sys_datalog.user = ? AND sys_datalog.datalog_id > server.updated AND server.active = 1 GROUP BY sys_datalog.dbtable, sys_datalog.action", $login); foreach($result as $row) { diff --git a/interface/lib/plugins/mail_mail_domain_plugin.inc.php b/interface/lib/plugins/mail_mail_domain_plugin.inc.php index 4ff756f44fb2ec1be22c46313b8c7da649128a99..485307fc55a514345f0fde0908ec012a2e75c503 100644 --- a/interface/lib/plugins/mail_mail_domain_plugin.inc.php +++ b/interface/lib/plugins/mail_mail_domain_plugin.inc.php @@ -60,7 +60,7 @@ class mail_mail_domain_plugin { } //** If the domain name or owner has been changed, change the domain and owner in all mailbox records - if($page_form->oldDataRecord && ($page_form->oldDataRecord['domain'] != $domain || + if($page_form->oldDataRecord && !empty($page_form->oldDataRecord['domain']) && ($page_form->oldDataRecord['domain'] != $domain || (isset($page_form->dataRecord['client_group_id']) && $page_form->oldDataRecord['sys_groupid'] != $page_form->dataRecord['client_group_id']))) { $app->uses('getconf'); $mail_config = $app->getconf->get_server_config($page_form->dataRecord["server_id"], 'mail'); @@ -255,7 +255,7 @@ class mail_mail_domain_plugin { // If domain changes, update spamfilter_users // and fire spamfilter_wblist_update events so rspamd files are rewritten if ($old_domain != $domain) { - $tmp_users = $app->db->queryOneRecord("SELECT id,fullname FROM spamfilter_users WHERE email LIKE ?", '%@' . $old_domain); + $tmp_users = $app->db->queryAllRecords("SELECT id,fullname FROM spamfilter_users WHERE email LIKE ?", '%@' . $old_domain); if(is_array($tmp_users)) { foreach ($tmp_users as $tmp_old) { $tmp_new = $app->db->queryOneRecord("SELECT id,fullname FROM spamfilter_users WHERE email = ?", '@' . $domain); diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index f5697b4f1c27fea3680d93dc3758675eb850e972..c822c9f27a7eee6f67b243e8293b2666ee9264b9 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -355,7 +355,7 @@ class page_action extends tform_actions { // We create a new record $insert_data = array( "sys_userid" => $_SESSION["s"]["user"]["userid"], - "sys_groupid" => $tmp_domain["sys_groupid"], + "sys_groupid" => (isset($this->dataRecord["client_group_id"]))?$this->dataRecord["client_group_id"]:$tmp_domain["sys_groupid"], "sys_perm_user" => 'riud', "sys_perm_group" => 'riud', "sys_perm_other" => '', diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index e8dd7f74736487f5f105cf345392a5aff2b66796..18d31beddd6ba54d79eb07130b78d123ac331e37 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -93,6 +93,7 @@ class page_action extends tform_actions { function onAfterUpdate() { $this->record_has_changed = false; foreach($this->dataRecord as $key => $val) { + if ($key == 'policy_name') { continue; } // Don't trigger update of all spamfilter users if only policy_name is changed if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { // Record has changed $this->record_has_changed = true; diff --git a/interface/web/nav.php b/interface/web/nav.php index 1091276b86153638719e3c248bb10dfca91d85ff..69b3c7c2d6328d2c7fc078c2c0461a2ad0add471 100644 --- a/interface/web/nav.php +++ b/interface/web/nav.php @@ -124,6 +124,7 @@ if(isset($_GET['nav']) && $_GET['nav'] == 'side') { } $nav['title'] = $app->lng($nav['title']); $nav['startpage'] = $nav['items'][0]['link']; + $nav['startpage_target'] = $nav['items'][0]['target']; $nav['items'] = $tmp_items; $nav_translated[] = $nav; } diff --git a/interface/web/themes/default/templates/sidenav.tpl.htm b/interface/web/themes/default/templates/sidenav.tpl.htm index b4dcb38ce04e6392667799c646ffc14c630df3bc..4d8acbf3fa45d8aae130040fe80aebc867d9923c 100644 --- a/interface/web/themes/default/templates/sidenav.tpl.htm +++ b/interface/web/themes/default/templates/sidenav.tpl.htm @@ -1,18 +1,38 @@ <tmpl_loop name="nav_left"> - <tmpl_if name="title"><header><tmpl_if name="is_link" op="!=" value="no"><tmpl_if name="startpage"><a href="#" class="subnav-header" data-load-content="<tmpl_var name='startpage'>"></tmpl_if></tmpl_if><tmpl_var name="title"><tmpl_if name="is_link" op="!=" value="no"><tmpl_if name="startpage"></a></tmpl_if></tmpl_if></header></tmpl_if> + <tmpl_if name="title"> + <header> + <tmpl_if name="is_link" op="!=" value="no"> + <tmpl_if name="startpage"> + <tmpl_if name="startpage_target" op="==" value="_blank"> + <a href="{tmpl_var name='startpage'}" target="_blank"> + <tmpl_elseif name="startpage_target" op="==" value="_top"> + <a href="{tmpl_var name='startpage'}" target="_top"> + <tmpl_else> + <a href="#" class="subnav-header" data-load-content="{tmpl_var name='startpage'}"> + </tmpl_if> + </tmpl_if> + </tmpl_if> + <tmpl_var name="title"> + <tmpl_if name="is_link" op="!=" value="no"> + <tmpl_if name="startpage"> + </a> + </tmpl_if> + </tmpl_if> + </header> + </tmpl_if> <ul id="sub-navigation"> <tmpl_loop name="items"> <li<tmpl_if name="html_id"> id='<tmpl_var name="html_id">' </tmpl_if>> <tmpl_if name="link"> <tmpl_if name="target" op="==" value="_blank"> - <a href="<tmpl_var name='link'>" target="_blank"> + <a href="{tmpl_var name='link'}" target="_blank"> <tmpl_elseif name="target" op="==" value="_top"> - <a href="<tmpl_var name='link'>" target="_top"> + <a href="{tmpl_var name='link'}" target="_top"> <tmpl_else> - <a href="#" data-load-content="<tmpl_var name='link'>"> + <a href="#" data-load-content="{tmpl_var name='link'}"> </tmpl_if> </tmpl_if> - <div{tmpl_if name="css"} style="{tmpl_var name='css'}"{/tmpl_if}> + <div{tmpl_if name='css'} style="{tmpl_var name='css'}"{/tmpl_if}> <tmpl_if name="title"><strong><tmpl_var name="title"></strong></tmpl_if> <tmpl_if name="image"><div align="center"><tmpl_var name="image"></div></tmpl_if> </div> diff --git a/server/conf/rspamd_worker-controller.inc.master b/server/conf/rspamd_worker-controller.inc.master index 75b744c88380c3ce63394caaadf79653e0fa8815..70ccd93c82e9316c98a399f708af18c13e706372 100644 --- a/server/conf/rspamd_worker-controller.inc.master +++ b/server/conf/rspamd_worker-controller.inc.master @@ -1,6 +1,5 @@ # Included from top-level .conf file -type = "controller"; count = 1; password = "<tmpl_var name='rspamd_password'>"; secure_ip = "127.0.0.1";