From d65993087963fcc1e7283e544e3100c492f7a742 Mon Sep 17 00:00:00 2001 From: kink Date: Sun, 21 Nov 2004 13:53:51 +0000 Subject: [PATCH] When you reload signout.php you get an error that you have to be logged in to view the signout page. This is of course silly, if you're already logged out this page should be a 'no-op' that just presents the same message. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@8389 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- ChangeLog | 2 ++ src/signout.php | 43 +++++++++++++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7579b99e..67b318de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -158,6 +158,8 @@ Version 1.5.1 -- CVS - Fix two time zone calculation bugs, thanks to David White - 'Priority' and 'Importance' headers are now also recognised, next to the 'X-Priority' header that we've supported since a long time. + - Handle a reload of the signout page gracefully: do not present an error + about having to be logged in to be able to sign out. Version 1.5.0 -------------------- diff --git a/src/signout.php b/src/signout.php index ed52ffe1..7088c7c9 100644 --- a/src/signout.php +++ b/src/signout.php @@ -18,21 +18,40 @@ */ define('SM_PATH','../'); -/* SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); -require_once(SM_PATH . 'functions/prefs.php'); +/* check if we're already logged out (e.g. when this page is reloaded), + * so we can skip to the output and not give error messages */ +if( ! isset($_SESSION) || empty($_SESSION['user_is_logged_in']) ) { + $loggedin = false; +} else { + $loggedin = true; +} + +if($loggedin) { + require_once(SM_PATH . 'include/validate.php'); + require_once(SM_PATH . 'functions/prefs.php'); +} else { + // this comes in through validate.php usually + require_once(SM_PATH . 'config/config.php'); + require_once(SM_PATH . 'functions/i18n.php'); + require_once(SM_PATH . 'functions/page_header.php'); + if (@file_exists($theme[$theme_default]['PATH'])) { + @include ($theme[$theme_default]['PATH']); + } +} require_once(SM_PATH . 'functions/plugin.php'); require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'functions/html.php'); -/* Erase any lingering attachments */ -if (isset($attachments) && is_array($attachments) - && sizeof($attachments)){ - $hashed_attachment_dir = getHashedDir($username, $attachment_dir); - foreach ($attachments as $info) { - $attached_file = "$hashed_attachment_dir/$info[localfilename]"; - if (file_exists($attached_file)) { - unlink($attached_file); +if($loggedin) { + /* Erase any lingering attachments */ + if (isset($attachments) && is_array($attachments) + && sizeof($attachments)){ + $hashed_attachment_dir = getHashedDir($username, $attachment_dir); + foreach ($attachments as $info) { + $attached_file = "$hashed_attachment_dir/$info[localfilename]"; + if (file_exists($attached_file)) { + unlink($attached_file); + } } } } @@ -94,4 +113,4 @@ html_tag( 'table', 'center', $color[4], 'width="50%" cols="1" cellpadding="2" cellspacing="0" border="0"' ) ?> - \ No newline at end of file + -- 2.25.1