Ticket #1483863: logout_actions.patch

File logout_actions.patch, 4.6 kB (added by alec, 7 months ago)

the same in different way + expunge on logout

  • config/main.inc.php.dist

    diff -ru rc-old/config/main.inc.php.dist rc-beta/config/main.inc.php.dist
    old new  
    283283// default setting if preview pane is enabled 
    284284$rcmail_config['preview_pane'] = FALSE; 
    285285 
     286// Clear Trash on logout 
     287$rcmail_config['logout_purge'] = FALSE; 
     288 
     289// Compact INBOX on logout 
     290$rcmail_config['logout_expunge'] = FALSE; 
     291 
    286292// don't let users set pagesize to more than this value if set 
    287293$rcmail_config['max_pagesize'] = 200; 
    288294 
  • index.php

    diff -ru rc-old/index.php rc-beta/index.php
    old new  
    185185else if (($_task=='logout' || $_action=='logout') && isset($_SESSION['user_id'])) 
    186186{ 
    187187  $OUTPUT->show_message('loggedout'); 
     188  rcmail_logout_actions(); 
    188189  rcmail_kill_session(); 
    189190} 
    190191 
  • program/include/main.inc

    diff -ru rc-old/program/include/main.inc rc-beta/program/include/main.inc
    old new  
    352352  $USER->reset(); 
    353353  } 
    354354 
     355/** 
     356 * Do server side actions on logout 
     357 */ 
     358function rcmail_logout_actions() 
     359  { 
     360  global $CONFIG, $IMAP; 
     361 
     362  // on logout action we're not connected to imap server   
     363  if ($CONFIG['logout_purge'] || $CONFIG['logout_expunge']) 
     364    { 
     365      if (!rcmail_authenticate_session()) 
     366        return; 
     367 
     368      rcmail_imap_init(true); 
     369    } 
     370 
     371  if ($CONFIG['logout_purge']) 
     372    $IMAP->clear_mailbox($CONFIG['trash_mbox']); 
     373 
     374  if ($CONFIG['logout_expunge']) 
     375    $IMAP->expunge('INBOX'); 
     376  } 
     377 
    355378 
    356379/** 
    357380 * Return correct name for a specific database table 
  • program/localization/en_US/labels.inc

    diff -ru rc-old/program/localization/en_US/labels.inc rc-beta/program/localization/en_US/labels.inc
    old new  
    250250$labels['htmleditor'] = 'Compose HTML messages'; 
    251251$labels['htmlsignature'] = 'HTML signature'; 
    252252$labels['previewpane'] = 'Show preview pane'; 
     253$labels['logoutclear'] = 'Clear Trash on logout'; 
     254$labels['logoutcompact'] = 'Compact Inbox on logout'; 
    253255 
    254256$labels['autosavedraft']  = 'Automatically save draft'; 
    255257$labels['everynminutes']  = 'every $n minutes'; 
  • program/steps/settings/func.inc

    diff -ru rc-old/program/steps/settings/func.inc rc-beta/program/steps/settings/func.inc
    old new  
    195195                    $select_autosave->show($CONFIG['draft_autosave'])); 
    196196    } 
    197197 
     198  // Trash purging on logout 
     199  if (!isset($no_override['logout_purge'])) 
     200    { 
     201    $field_id = 'rcmfd_logout_purge'; 
     202    $input_purge = new checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1)); 
     203    $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", 
     204                    $field_id, 
     205                    Q(rcube_label('logoutclear')), 
     206                    $input_purge->show($CONFIG['logout_purge']?1:0)); 
     207    } 
     208 
     209  // INBOX compacting on logout 
     210  if (!isset($no_override['logout_expunge'])) 
     211    { 
     212    $field_id = 'rcmfd_logout_expunge'; 
     213    $input_expunge = new checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1)); 
     214    $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", 
     215                    $field_id, 
     216                    Q(rcube_label('logoutcompact')), 
     217                    $input_expunge->show($CONFIG['logout_expunge']?1:0)); 
     218    } 
     219 
    198220  $out .= "\n</table>$form_end"; 
    199221 
    200222  return $out;   
  • program/steps/settings/save_prefs.inc

    diff -ru rc-old/program/steps/settings/save_prefs.inc rc-beta/program/steps/settings/save_prefs.inc
    old new  
    2727  'prefer_html'  => isset($_POST['_prefer_html']) ? TRUE : FALSE, 
    2828  'htmleditor'   => isset($_POST['_htmleditor']) ? TRUE : FALSE, 
    2929  'preview_pane' => isset($_POST['_preview_pane']) ? TRUE : FALSE, 
    30   'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0 
     30  'logout_purge' => isset($_POST['_logout_purge']) ? TRUE : FALSE, 
     31  'logout_expunge' => isset($_POST['_logout_expunge']) ? TRUE : FALSE, 
     32  'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0, 
    3133  ); 
    3234 
    3335// don't override these parameters