| | |
| | | /* |
| | | +-------------------------------------------------------------------------+ |
| | | | RoundCube Webmail IMAP Client | |
| | | | Version 0.3-20090419 | |
| | | | Version 0.3-20090702 | |
| | | | | |
| | | | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | |
| | | | | |
| | |
| | | // init plugin API |
| | | $RCMAIL->plugins->init(); |
| | | |
| | | // set output buffering |
| | | if ($RCMAIL->action != 'get' && $RCMAIL->action != 'viewsource') { |
| | | // use gzip compression if supported |
| | | if (function_exists('ob_gzhandler') |
| | | && !ini_get('zlib.output_compression') |
| | | && ini_get('output_handler') != 'ob_gzhandler') { |
| | | ob_start('ob_gzhandler'); |
| | | } |
| | | else { |
| | | ob_start(); |
| | | } |
| | | } |
| | | // turn on output buffering |
| | | ob_start(); |
| | | |
| | | // check if config files had errors |
| | | if ($err_str = $RCMAIL->config->get_error()) { |
| | |
| | | raise_error(array('code' => hexdec($_GET['_code'])), FALSE, TRUE); |
| | | } |
| | | |
| | | // check if https is required (for login) and redirect if necessary |
| | | if ($RCMAIL->config->get('force_https', false) && empty($_SESSION['user_id']) && !(isset($_SERVER['HTTPS']) || $_SERVER['SERVER_PORT'] == 443)) { |
| | | header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); |
| | | exit; |
| | | } |
| | | |
| | | // trigger startup plugin hook |
| | | $startup = $RCMAIL->plugins->exec_hook('startup', array('task' => $RCMAIL->task, 'action' => $RCMAIL->action)); |
| | |
| | | else if ($_SESSION['temp'] && !empty($auth['user']) && !empty($auth['host']) && isset($auth['pass']) && |
| | | $RCMAIL->login($auth['user'], $auth['pass'], $auth['host'])) { |
| | | // create new session ID |
| | | unset($_SESSION['temp']); |
| | | rcube_sess_unset('temp'); |
| | | rcube_sess_regenerate_id(); |
| | | |
| | | // send auth cookie if necessary |
| | |
| | | } |
| | | |
| | | // end session |
| | | else if (($RCMAIL->task=='logout' || $RCMAIL->action=='logout') && isset($_SESSION['user_id'])) { |
| | | else if ($RCMAIL->task=='logout' && isset($_SESSION['user_id'])) { |
| | | $OUTPUT->show_message('loggedout'); |
| | | $RCMAIL->logout_actions(); |
| | | $RCMAIL->kill_session(); |
| | |
| | | $action_map[$RCMAIL->task][$RCMAIL->action] : strtr($RCMAIL->action, '-', '_') . '.inc'; |
| | | |
| | | // execute a plugin action |
| | | if (eregi('^plugin.', $RCMAIL->action)) { |
| | | if (preg_match('/^plugin\./', $RCMAIL->action)) { |
| | | $RCMAIL->plugins->exec_action($RCMAIL->action); |
| | | break; |
| | | } |