alecpl
2012-01-03 fdff34093d479f1a9cb98107b68eb9137278b181
index.php
@@ -2,7 +2,7 @@
/*
 +-------------------------------------------------------------------------+
 | Roundcube Webmail IMAP Client                                           |
 | Version 0.6-svn                                                         |
 | Version 0.8-svn                                                         |
 |                                                                         |
 | Copyright (C) 2005-2011, The Roundcube Dev Team                         |
 |                                                                         |
@@ -32,6 +32,9 @@
// init application, start session, init output class, etc.
$RCMAIL = rcmail::get_instance();
// Make the whole PHP output non-cacheable (#1487797)
send_nocacheing_headers();
// turn on output buffering
ob_start();
@@ -94,8 +97,7 @@
    $OUTPUT->show_message("cookiesdisabled", 'warning');
  }
  else if ($auth['valid'] && !$auth['abort'] &&
        !empty($auth['host']) && !empty($auth['user']) &&
        $RCMAIL->login($auth['user'], $auth['pass'], $auth['host'])
    $RCMAIL->login($auth['user'], $auth['pass'], $auth['host'])
  ) {
    // create new session ID, don't destroy the current session
    // it was destroyed already by $RCMAIL->kill_session() above
@@ -126,7 +128,7 @@
    $OUTPUT->redirect($redir);
  }
  else {
    $error_code = is_object($IMAP) ? $IMAP->get_error_code() : -1;
    $error_code = (isset($RCMAIL->imap) && is_object($RCMAIL->imap)) ? $RCMAIL->imap->get_error_code() : 1;
    $OUTPUT->show_message($error_code < -1 ? 'imaperror' : (!$auth['valid'] ? 'invalidrequest' : 'loginfailed'), 'warning');
    $RCMAIL->plugins->exec_hook('login_failed', array(
@@ -155,7 +157,7 @@
// not logged in -> show login page
if (empty($RCMAIL->user->ID)) {
  // log session failures
  if ($RCMAIL->task != 'login' && $RCMAIL->task != 'logout' && !$session_error && ($sess_id = $_COOKIE[ini_get('session.name')])) {
  if (($task = get_input_value('_task', RCUBE_INPUT_GPC)) && !in_array($task, array('login','logout')) && !$session_error && ($sess_id = $_COOKIE[ini_get('session.name')])) {
    $RCMAIL->session->log("Aborted session " . $sess_id . "; no valid session data found");
    $session_error = true;
  }
@@ -177,7 +179,7 @@
      )
    );
  }
  if ($session_error || $_REQUEST['_err'] == 'session')
    $OUTPUT->show_message('sessionerror', 'error', null, true, -1);
@@ -192,7 +194,7 @@
  // check client X-header to verify request origin
  if ($OUTPUT->ajax_call) {
    if (rc_request_header('X-Roundcube-Request') != $RCMAIL->get_request_token() && !$RCMAIL->config->get('devel_mode')) {
      header('HTTP/1.1 404 Not Found');
      header('HTTP/1.1 403 Forbidden');
      die("Invalid Request");
    }
  }
@@ -211,6 +213,12 @@
  }
}
// we're ready, user is authenticated and the request is safe
$plugin = $RCMAIL->plugins->exec_hook('ready', array('task' => $RCMAIL->task, 'action' => $RCMAIL->action));
$RCMAIL->set_task($plugin['task']);
$RCMAIL->action = $plugin['action'];
// handle special actions
if ($RCMAIL->action == 'keep-alive') {
  $OUTPUT->reset();