From f2890b900bdab5a92d9bc2a86425051208d6bf82 Mon Sep 17 00:00:00 2001 From: Steven Ngesera Date: Tue, 20 Aug 2024 03:29:38 +0300 Subject: [PATCH] Should be off by default | Address the controversial part in read receipts --- modules/smtp/modules.php | 41 ++++++++++++++++++++++++++++++++++++---- modules/smtp/setup.php | 4 ++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/modules/smtp/modules.php b/modules/smtp/modules.php index 0f48de2c7..364c5d749 100644 --- a/modules/smtp/modules.php +++ b/modules/smtp/modules.php @@ -392,7 +392,8 @@ public function process() { } $this->out('uploaded_files', get_uploaded_files($draft_id, $this->session)); - $compose_type = $this->user_config->get('smtp_compose_type_setting', 0); + $settings = $this->user_config; + $compose_type = $settings->get('smtp_compose_type_setting', 0); if ($this->get('is_mobile', false)) { $compose_type = 0; } @@ -407,6 +408,7 @@ public function process() { $this->out('compose_draft', $draft); } $this->out('smtp_compose_type', $compose_type); + $this->out('user_settings', $settings); } } @@ -726,7 +728,7 @@ public function process() { /* msg details */ list($body, $cc, $bcc, $in_reply_to, $draft) = get_outbound_msg_detail($this->request->post, $draft, $body_type); - if (!empty($this->request->post['compose_delivery_receipt'])) { + if ($this->user_config->get('enable_compose_delivery_receipt_setting', false) && !empty($this->request->post['compose_delivery_receipt'])) { $from_params = 'RET=HDRS'; $recipients_params = 'NOTIFY=SUCCESS,FAILURE'; } @@ -899,6 +901,34 @@ public function process() { } } +/** + * @subpackage keyboard_shortcuts/handler + */ +class Hm_Handler_process_enable_compose_delivery_receipt_setting extends Hm_Handler_Module { + public function process() { + function compose_delivery_receipt_enabled_callback($val) { return $val; } + process_site_setting('enable_compose_delivery_receipt', $this, 'compose_delivery_receipt_enabled_callback', false, true); + } +} + +class Hm_Output_enable_compose_delivery_receipt_setting extends Hm_Output_Module { + protected function output() { + $settings = $this->get('user_settings'); + if (array_key_exists('enable_compose_delivery_receipt', $settings) && $settings['enable_compose_delivery_receipt']) { + $checked = ' checked="checked"'; + $reset = ''; + } + else { + $checked = ''; + $reset = ''; + } + return ''. + ''.$reset.''; + } +} + /** * @subpackage keyboard_shortcuts/output */ @@ -1181,8 +1211,11 @@ protected function output() { '
'. ''. (!$html ? '': ''). - '
'. - '
'; + ''; + $settings = $this->get('user_settings'); + if($settings->get('enable_compose_delivery_receipt_setting')) { + $res .= '
'; + } if ($html == 2) { $res .= ''. ''. diff --git a/modules/smtp/setup.php b/modules/smtp/setup.php index 313463897..4417808ec 100644 --- a/modules/smtp/setup.php +++ b/modules/smtp/setup.php @@ -101,6 +101,9 @@ add_handler('ajax_clear_attachment_chunks', 'load_user_data', true, 'core'); add_handler('ajax_clear_attachment_chunks', 'clear_attachment_chunks', true); +add_handler('settings', 'process_enable_compose_delivery_receipt_setting', true, 'core', 'save_user_settings', 'before'); +add_output('settings', 'enable_compose_delivery_receipt_setting', true, 'core', 'start_general_settings', 'after'); + return array( 'allowed_pages' => array( 'ajax_clear_attachment_chunks', @@ -169,6 +172,7 @@ 'compose_cc' => FILTER_UNSAFE_RAW, 'compose_bcc' => FILTER_UNSAFE_RAW, 'compose_delivery_receipt' => FILTER_VALIDATE_BOOLEAN, + 'enable_compose_delivery_receipt' => FILTER_VALIDATE_INT, 'compose_smtp_id' => FILTER_DEFAULT, 'draft_id' => FILTER_VALIDATE_INT, 'draft_body' => FILTER_UNSAFE_RAW,