diff --git a/util/db-mysql.sql b/util/db-mysql.sql index 02ea7c6..6e6ea26 100644 --- a/util/db-mysql.sql +++ b/util/db-mysql.sql @@ -105,7 +105,7 @@ create table if not exists `archiving_rule` ( `id` bigint unsigned not null auto_increment, - `domain` varchar(255) default null, + `domain` varchar(128) default null, `from` char(128) default null, `to` char(255) default null, `subject` char(255) default null, @@ -123,7 +123,7 @@ create table if not exists `retention_rule` ( `id` bigint unsigned not null auto_increment, - `domain` varchar(255) default null, + `domain` varchar(128) default null, `from` char(128) default null, `to` char(255) default null, `subject` char(255) default null, @@ -135,7 +135,7 @@ `spam` tinyint(1) default -1, `days` int default 0, primary key (`id`), - unique(`from`,`to`,`subject`,`_size`,`size`,`attachment_type`,`_attachment_size`,`attachment_size`,`spam`) + unique (`domain`,`from`,`to`,`subject`,`_size`,`size`,`attachment_type`,`_attachment_size`,`attachment_size`,`spam`) ) ENGINE=InnoDB; diff --git a/util/db-upgrade-0.1.23-vs-0.1.24.sql b/util/db-upgrade-0.1.23-vs-0.1.24.sql index 3364bae..1390230 100644 --- a/util/db-upgrade-0.1.23-vs-0.1.24.sql +++ b/util/db-upgrade-0.1.23-vs-0.1.24.sql @@ -7,6 +7,8 @@ alter table archiving_rule add column domain varchar(255) default null; alter table retention_rule add column domain varchar(255) default null; +alter table retention_rule drop index `from`; +create unique index `entry` on retention_rule (`domain`,`from`,`to`,`subject`,`_size`,`size`,`attachment_type`,`_attachment_size`,`attachment_size`,`spam`); create table if not exists `ldap` ( `id` int not null auto_increment primary key, diff --git a/webui/controller/policy/retention.php b/webui/controller/policy/retention.php index 10ba058..9c4e897 100644 --- a/webui/controller/policy/retention.php +++ b/webui/controller/policy/retention.php @@ -52,6 +52,7 @@ $this->request->post['attachment_type'] == '' && $this->request->post['attachment_size'] == '' && $this->request->post['spam'] == -1 ) { + if(ENABLE_SAAS == 1 && strlen($this->request->post['domain']) > 3) { return true; } return false; } diff --git a/webui/model/policy/retention.php b/webui/model/policy/retention.php index 0184767..3aee860 100644 --- a/webui/model/policy/retention.php +++ b/webui/model/policy/retention.php @@ -22,8 +22,12 @@ public function add_new_rule($data = array()) { + $domain = ''; - $query = $this->db->query("INSERT INTO " . TABLE_RETENTION_RULE . " (`from`,`to`,`subject`,`_size`,`size`,`attachment_type`,`_attachment_size`,`attachment_size`,`spam`,`days`) VALUES(?,?,?,?,?,?,?,?,?,?)", array($data['from'], $data['to'], $data['subject'], $data['_size'], $data['size'], $data['attachment_type'], $data['_attachment_size'], $data['attachment_size'], $data['spam'], $data['days']) ); + if(isset($data['domain'])) { $domain = $data['domain']; } + + $query = $this->db->query("INSERT INTO " . TABLE_RETENTION_RULE . " (`domain`,`from`,`to`,`subject`,`_size`,`size`,`attachment_type`,`_attachment_size`,`attachment_size`,`spam`,`days`) VALUES(?,?,?,?,?,?,?,?,?,?,?)", array($domain, $data['from'], $data['to'], $data['subject'], $data['_size'], $data['size'], $data['attachment_type'], $data['_attachment_size'], $data['attachment_size'], $data['spam'], $data['days']) ); + return $this->db->countAffected(); } diff --git a/webui/view/theme/default/templates/policy/retention.tpl b/webui/view/theme/default/templates/policy/retention.tpl index cd55a6d..4503d84 100644 --- a/webui/view/theme/default/templates/policy/retention.tpl +++ b/webui/view/theme/default/templates/policy/retention.tpl @@ -2,6 +2,16 @@