When you reload signout.php you get an error that you have to be logged in
authorkink <kink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 21 Nov 2004 13:53:51 +0000 (13:53 +0000)
committerkink <kink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 21 Nov 2004 13:53:51 +0000 (13:53 +0000)
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
src/signout.php

index 7579b99ec692afbf6b1d09d25be9e088b0244a3a..67b318de62b941d9c7595af2b90ea411f3f44781 100644 (file)
--- 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.
   - 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
 --------------------
 
 Version 1.5.0
 --------------------
index ed52ffe1ab0de89b8cb439c0b5071f943c138802..7088c7c9110493dbca420f8fed19d923a47fd430 100644 (file)
  */
 define('SM_PATH','../');
 
  */
 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');
 
 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"' )
 ?>
 </body>
 'center', $color[4], 'width="50%" cols="1" cellpadding="2" cellspacing="0" border="0"' )
 ?>
 </body>
-</html>
\ No newline at end of file
+</html>