From fba1f5ab813f2eb4bedc5d9c4a75e77bbaa90131 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Mon, 10 Dec 2007 10:27:19 -0500 Subject: [PATCH] New class rcube_user + send message disposition notification --- index.php | 39 ++++++++++++++++++++++++++------------- 1 files changed, 26 insertions(+), 13 deletions(-) diff --git a/index.php b/index.php index f62e9eb..9f2d336 100644 --- a/index.php +++ b/index.php @@ -2,7 +2,7 @@ /* +-----------------------------------------------------------------------+ | RoundCube Webmail IMAP Client | - | Version 0.1-20070428 | + | Version 0.1-20071210 | | | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | @@ -41,7 +41,7 @@ */ // application constants -define('RCMAIL_VERSION', '0.1-20070428'); +define('RCMAIL_VERSION', '0.1-20071210'); define('RCMAIL_CHARSET', 'UTF-8'); define('JS_OBJECT_NAME', 'rcmail'); @@ -66,11 +66,12 @@ // instead the ones provided by RC ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PATH_SEPARATOR.$INSTALL_PATH.'program/lib'.PATH_SEPARATOR.ini_get('include_path')); -ini_set('session.name', 'sessid'); +ini_set('session.name', 'roundcube_sessid'); ini_set('session.use_cookies', 1); ini_set('session.gc_maxlifetime', 21600); ini_set('session.gc_divisor', 500); ini_set('error_reporting', E_ALL&~E_NOTICE); +set_magic_quotes_runtime(0); // increase maximum execution time for php scripts // (does not work in safe mode) @@ -81,7 +82,6 @@ require_once('include/rcube_imap.inc'); require_once('include/bugs.inc'); require_once('include/main.inc'); -require_once('include/cache.inc'); require_once('PEAR.php'); @@ -172,8 +172,8 @@ } else { - $OUTPUT->show_message("loginfailed", 'warning'); - $_SESSION['user_id'] = ''; + $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'loginfailed', 'warning'); + rcmail_kill_session(); } } @@ -196,13 +196,13 @@ // log in to imap server -if (!empty($_SESSION['user_id']) && $_task=='mail') +if (!empty($USER->ID) && $_task=='mail') { $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']); if (!$conn) { - $OUTPUT->show_message('imaperror', 'error'); - $_SESSION['user_id'] = ''; + $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'sessionerror', 'error'); + rcmail_kill_session(); } else rcmail_set_imap_prop(); @@ -210,7 +210,7 @@ // not logged in -> set task to 'login -if (empty($_SESSION['user_id'])) +if (empty($USER->ID)) { if ($OUTPUT->ajax_call) $OUTPUT->remote_response("setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);"); @@ -218,6 +218,16 @@ $_task = 'login'; } + +// check client X-header to verify request origin +if ($OUTPUT->ajax_call) +{ + if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer')) + { + header('HTTP/1.1 404 Not Found'); + die("Invalid Request"); + } +} // set task and action to client @@ -228,7 +238,7 @@ // not logged in -> show login page -if (!$_SESSION['user_id']) +if (empty($USER->ID)) { $OUTPUT->task = 'login'; $OUTPUT->send('login'); @@ -264,6 +274,9 @@ if ($_action=='viewsource') include('program/steps/mail/viewsource.inc'); + if ($_action=='sendmdn') + include('program/steps/mail/sendmdn.inc'); + if ($_action=='send') include('program/steps/mail/sendmail.inc'); @@ -285,7 +298,7 @@ if ($_action=='getunread') include('program/steps/mail/getunread.inc'); - if ($_action=='list' && isset($_GET['_remote'])) + if ($_action=='list' && isset($_REQUEST['_remote'])) include('program/steps/mail/list.inc'); if ($_action=='search') @@ -323,7 +336,7 @@ if ($_action=='show') include('program/steps/addressbook/show.inc'); - if ($_action=='list' && $_GET['_remote']) + if ($_action=='list' && $_REQUEST['_remote']) include('program/steps/addressbook/list.inc'); if ($_action=='search') -- Gitblit v1.9.1