#1483863: empty trash and expunge inbox on logout
| | |
| | | // default setting if preview pane is enabled |
| | | $rcmail_config['preview_pane'] = FALSE; |
| | | |
| | | // Clear Trash on logout |
| | | $rcmail_config['logout_purge'] = FALSE; |
| | | |
| | | // Compact INBOX on logout |
| | | $rcmail_config['logout_expunge'] = FALSE; |
| | | |
| | | // don't let users set pagesize to more than this value if set |
| | | $rcmail_config['max_pagesize'] = 200; |
| | | |
| | |
| | | else if (($_task=='logout' || $_action=='logout') && isset($_SESSION['user_id'])) |
| | | { |
| | | $OUTPUT->show_message('loggedout'); |
| | | rcmail_logout_actions(); |
| | | rcmail_kill_session(); |
| | | } |
| | | |
| | |
| | | $USER->reset(); |
| | | } |
| | | |
| | | /** |
| | | * Do server side actions on logout |
| | | */ |
| | | function rcmail_logout_actions() |
| | | { |
| | | global $CONFIG, $IMAP; |
| | | |
| | | // on logout action we're not connected to imap server |
| | | if (($CONFIG['logout_purge'] && !empty($CONFIG['trash_mbox'])) |
| | | || $CONFIG['logout_expunge']) |
| | | { |
| | | if (!rcmail_authenticate_session()) |
| | | return; |
| | | |
| | | rcmail_imap_init(true); |
| | | } |
| | | |
| | | if ($CONFIG['logout_purge'] && !empty($CONFIG['trash_mbox'])) |
| | | $IMAP->clear_mailbox($CONFIG['trash_mbox']); |
| | | |
| | | if ($CONFIG['logout_expunge']) |
| | | $IMAP->expunge('INBOX'); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return correct name for a specific database table |
| | |
| | | $labels['htmleditor'] = 'Compose HTML messages'; |
| | | $labels['htmlsignature'] = 'HTML signature'; |
| | | $labels['previewpane'] = 'Show preview pane'; |
| | | $labels['logoutclear'] = 'Clear Trash on logout'; |
| | | $labels['logoutcompact'] = 'Compact Inbox on logout'; |
| | | |
| | | $labels['autosavedraft'] = 'Automatically save draft'; |
| | | $labels['everynminutes'] = 'every $n minutes'; |
| | |
| | | $select_autosave->show($CONFIG['draft_autosave'])); |
| | | } |
| | | |
| | | // Trash purging on logout |
| | | if (!isset($no_override['logout_purge'])) |
| | | { |
| | | $field_id = 'rcmfd_logout_purge'; |
| | | $input_purge = new checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1)); |
| | | $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", |
| | | $field_id, |
| | | Q(rcube_label('logoutclear')), |
| | | $input_purge->show($CONFIG['logout_purge']?1:0)); |
| | | } |
| | | |
| | | // INBOX compacting on logout |
| | | if (!isset($no_override['logout_expunge'])) |
| | | { |
| | | $field_id = 'rcmfd_logout_expunge'; |
| | | $input_expunge = new checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1)); |
| | | $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", |
| | | $field_id, |
| | | Q(rcube_label('logoutcompact')), |
| | | $input_expunge->show($CONFIG['logout_expunge']?1:0)); |
| | | } |
| | | |
| | | $out .= "\n</table>$form_end"; |
| | | |
| | | return $out; |
| | |
| | | 'prefer_html' => isset($_POST['_prefer_html']) ? TRUE : FALSE, |
| | | 'htmleditor' => isset($_POST['_htmleditor']) ? TRUE : FALSE, |
| | | 'preview_pane' => isset($_POST['_preview_pane']) ? TRUE : FALSE, |
| | | 'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0 |
| | | 'logout_purge' => isset($_POST['_logout_purge']) ? TRUE : FALSE, |
| | | 'logout_expunge' => isset($_POST['_logout_expunge']) ? TRUE : FALSE, |
| | | 'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0, |
| | | ); |
| | | |
| | | // don't override these parameters |