diff options
Diffstat (limited to 'plugins/managesieve')
-rw-r--r-- | plugins/managesieve/Changelog | 1 | ||||
-rw-r--r-- | plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php | 1 | ||||
-rw-r--r-- | plugins/managesieve/lib/Roundcube/rcube_sieve_script.php | 3 | ||||
-rw-r--r-- | plugins/managesieve/localization/en_US.inc | 1 | ||||
-rw-r--r-- | plugins/managesieve/tests/src/parser.out | 2 | ||||
-rw-r--r-- | plugins/managesieve/tests/src/parser_enotify_b | 4 | ||||
-rw-r--r-- | plugins/managesieve/tests/src/parser_index | 2 | ||||
-rw-r--r-- | plugins/managesieve/tests/src/parser_notify_b | 4 |
8 files changed, 11 insertions, 7 deletions
diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index daee91a70..60b2f1831 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -4,6 +4,7 @@ - Support date, currendate and index tests - RFC5260 (#1488120) - Split plugin file into two files - Fix handling of &, <, > characters in scripts/filter names (#1489208) +- Support 'keep' action (#1489226) * version 6.2 [2013-02-17] ----------------------------------------------------------- diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php index e92ba04d6..bbbfa9d91 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php @@ -1550,6 +1550,7 @@ class rcube_sieve_engine if (in_array('enotify', $this->exts) || in_array('notify', $this->exts)) { $select_action->add(rcube::Q($this->plugin->gettext('notify')), 'notify'); } + $select_action->add(rcube::Q($this->plugin->gettext('messagekeep')), 'keep'); $select_action->add(rcube::Q($this->plugin->gettext('rulestop')), 'stop'); $select_type = $action['type']; diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php index a614c3b15..371b45d84 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php @@ -260,7 +260,8 @@ class rcube_sieve_script $this->add_index($test, $tests[$i], $exts); } - if (!empty($test['part'])) { + // :all address-part is optional, skip it + if (!empty($test['part']) && $test['part'] != 'all') { $tests[$i] .= ' :' . $test['part']; if ($test['part'] == 'user' || $test['part'] == 'detail') { array_push($exts, 'subaddress'); diff --git a/plugins/managesieve/localization/en_US.inc b/plugins/managesieve/localization/en_US.inc index 72bbf9d41..a37ea7db9 100644 --- a/plugins/managesieve/localization/en_US.inc +++ b/plugins/managesieve/localization/en_US.inc @@ -49,6 +49,7 @@ $labels['messagesendcopy'] = 'Send message copy to'; $labels['messagereply'] = 'Reply with message'; $labels['messagedelete'] = 'Delete message'; $labels['messagediscard'] = 'Discard with message'; +$labels['messagekeep'] = 'Keep message in Inbox'; $labels['messagesrules'] = 'For incoming mail:'; $labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'Add'; diff --git a/plugins/managesieve/tests/src/parser.out b/plugins/managesieve/tests/src/parser.out index 366515b06..cb0bad5e7 100644 --- a/plugins/managesieve/tests/src/parser.out +++ b/plugins/managesieve/tests/src/parser.out @@ -39,7 +39,7 @@ if true } fileinto "Test"; # rule:[address test] -if address :all :is "From" "nagios@domain.tld" +if address :is "From" "nagios@domain.tld" { fileinto "domain.tld"; stop; diff --git a/plugins/managesieve/tests/src/parser_enotify_b b/plugins/managesieve/tests/src/parser_enotify_b index 9a17eaf0c..a3011bac2 100644 --- a/plugins/managesieve/tests/src/parser_enotify_b +++ b/plugins/managesieve/tests/src/parser_enotify_b @@ -1,6 +1,6 @@ require ["enotify","envelope","variables"]; # rule:[from] -if envelope :all :matches "from" "*" +if envelope :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :all :matches "from" "*" +if address :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com"; diff --git a/plugins/managesieve/tests/src/parser_index b/plugins/managesieve/tests/src/parser_index index 78aba9a55..ca9f86d56 100644 --- a/plugins/managesieve/tests/src/parser_index +++ b/plugins/managesieve/tests/src/parser_index @@ -12,7 +12,7 @@ if header :index 2 :contains ["From","To"] "test@domain.tld" stop; } # rule:[index-address] -if address :index 1 :all :is "From" "nagios@domain.tld" +if address :index 1 :is "From" "nagios@domain.tld" { fileinto "domain.tld"; stop; diff --git a/plugins/managesieve/tests/src/parser_notify_b b/plugins/managesieve/tests/src/parser_notify_b index 9a3ca803c..ab90ed48c 100644 --- a/plugins/managesieve/tests/src/parser_notify_b +++ b/plugins/managesieve/tests/src/parser_notify_b @@ -1,6 +1,6 @@ require ["envelope","notify","variables"]; # rule:[from] -if envelope :all :matches "from" "*" +if envelope :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :all :matches "from" "*" +if address :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" :method "sms:1234567890"; |