summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--config/main.inc.php.dist10
-rw-r--r--program/include/rcube_imap.php6
3 files changed, 7 insertions, 10 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f67ca34db..b7c298106 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
+- Fix inconsistent behaviour of 'delete_always' option (#1486299)
- Fix deleting all messages from last list page (#1486293)
- Flag original messages when sending a draft (#1486203)
- Changed signature separator when top-posting (#1486330)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 819153f76..6ab8b5281 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -361,13 +361,9 @@ $rcmail_config['log_logins'] = false;
/**
* 'Delete always'
- * This setting reflects if mail should be always marked as deleted,
- * even if moving to "Trash" fails. This is necessary in some setups
- * because a) people may not have a Trash folder or b) they are over
- * quota (and Trash is included in the quota).
- *
- * This is a failover setting for iil_C_Move when a message is moved
- * to the Trash.
+ * This setting reflects if mail should be always deleted
+ * when moving to Trash fails. This is necessary in some setups
+ * when user is over quota and Trash is included in the quota.
*/
$rcmail_config['delete_always'] = false;
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 307914eef..4c3c64767 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -1793,7 +1793,7 @@ class rcube_imap
// move messages
$iil_move = iil_C_Move($this->conn, join(',', $a_uids), $from_mbox, $to_mbox);
$moved = !($iil_move === false || $iil_move < 0);
-
+
// send expunge command in order to have the moved message
// really deleted from the source mailbox
if ($moved) {
@@ -1802,8 +1802,8 @@ class rcube_imap
$this->_clear_messagecount($to_mbox);
}
// moving failed
- else if (rcmail::get_instance()->config->get('delete_always', false)) {
- return iil_C_Delete($this->conn, $from_mbox, join(',', $a_uids));
+ else if ($config->get('delete_always', false) && $tbox == $config->get('trash_mbox')) {
+ return $this->delete_message($a_uids, $fbox);
}
// remove message ids from search set