]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 121601: Have logout display index.cgi, not just a message on relogin.cgi.
authormkanat%bugzilla.org <>
Sun, 1 Mar 2009 23:42:51 +0000 (23:42 +0000)
committermkanat%bugzilla.org <>
Sun, 1 Mar 2009 23:42:51 +0000 (23:42 +0000)
Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit

Bugzilla/Auth/Persist/Cookie.pm
index.cgi
relogin.cgi
template/en/default/global/common-links.html.tmpl
template/en/default/sidebar.xul.tmpl

index 420bad16b0683a014e6e44081a24471c0c168745..c533252d33f1344e85a08b8181719a620f69a98e 100644 (file)
@@ -161,6 +161,7 @@ sub clear_browser_cookies {
     my $cgi = Bugzilla->cgi;
     $cgi->remove_cookie('Bugzilla_login');
     $cgi->remove_cookie('Bugzilla_logincookie');
+    $cgi->remove_cookie('sudo');
 }
 
 1;
index 89880d1632d60ce012d9af957e898b0de51bfde7..660909452e4e19c8c83f8bd16dd0af01ab06f504 100755 (executable)
--- a/index.cgi
+++ b/index.cgi
@@ -38,12 +38,24 @@ use Bugzilla::Update;
 
 # Check whether or not the user is logged in
 my $user = Bugzilla->login(LOGIN_OPTIONAL);
+my $cgi = Bugzilla->cgi;
+my $template = Bugzilla->template;
+my $vars = {};
+
+# And log out the user if requested. We do this first so that nothing
+# else accidentally relies on the current login.
+if ($cgi->param('logout')) {
+    Bugzilla->logout();
+    $user = Bugzilla->user;
+    $vars->{'message'} = "logged_out";
+    # Make sure that templates or other code doesn't get confused about this.
+    $cgi->delete('logout');
+}
 
 ###############################################################################
 # Main Body Execution
 ###############################################################################
 
-my $cgi = Bugzilla->cgi;
 # Force to use HTTPS unless Bugzilla->params->{'ssl'} equals 'never'.
 # This is required because the user may want to log in from here.
 if ($cgi->protocol ne 'https' && Bugzilla->params->{'sslbase'} ne ''
@@ -52,9 +64,6 @@ if ($cgi->protocol ne 'https' && Bugzilla->params->{'sslbase'} ne ''
     $cgi->require_https(Bugzilla->params->{'sslbase'});
 }
 
-my $template = Bugzilla->template;
-my $vars = {};
-
 # Return the appropriate HTTP response headers.
 print $cgi->header();
 
index 9d30d7c113f57c58dfd2e8e9423d34efe4e98420..a5cea5f91b9012db03b690fccc4a42a9d09c6cc9 100755 (executable)
@@ -37,7 +37,7 @@ use Date::Format;
 my $template = Bugzilla->template;
 my $cgi = Bugzilla->cgi;
 
-my $action = $cgi->param('action') || 'logout';
+my $action = $cgi->param('action');
 
 my $vars = {};
 my $target;
@@ -184,20 +184,6 @@ elsif ($action eq 'end-sudo') {
     $vars->{'message'} = 'sudo_ended';
     $target = 'global/message.html.tmpl';
 }
-# Log out the currently logged-in user (this used to be the only thing this did)
-elsif ($action eq 'logout') {
-    # We don't want to remove a random logincookie from the db, so
-    # call Bugzilla->login(). If we're logged in after this, then
-    # the logincookie must be correct
-    Bugzilla->login(LOGIN_OPTIONAL);
-
-    $cgi->remove_cookie('sudo');
-
-    Bugzilla->logout();
-
-    $vars->{'message'} = "logged_out";
-    $target = 'global/message.html.tmpl';
-}
 # No valid action found
 else {
     Bugzilla->login(LOGIN_OPTIONAL);
index 6f2c46f4685c84a51973ae6270a420acf7a0b310..5c4e9d9a5e32b43fc4e1a8464b6155716c1b1c1b 100644 (file)
@@ -68,7 +68,7 @@
     <li>
       <span class="separator">| </span>
       [% IF user.authorizer.can_logout %]
-        <a href="relogin.cgi">Log&nbsp;out</a>
+        <a href="index.cgi?logout=1">Log&nbsp;out</a>
       [% ELSE %]
         Logged&nbsp;in&nbsp;as
       [% END %]
index 8035c8298bbf53273909c7148c9220199756a644..3df943e5cef783f114ffa8561dafcc2acb759d40 100644 (file)
@@ -97,7 +97,8 @@ function normal_keypress_handler( aEvent ) {
       <text class="text-link" onclick="load_relative_url('sanitycheck.cgi')" value="sanity check"/>
   [%- END %]
   [%- IF user.authorizer.can_logout %]
-      <text class="text-link" onclick="load_relative_url('relogin.cgi')" value="log out [% user.login FILTER html %]"/>
+      <text class="text-link" onclick="load_relative_url('index.cgi?logout=1')"
+            value="log out [% user.login FILTER html %]"/>
   [%- END %]
       <separator class="thin"/>
   [%- IF user.showmybugslink %]