Commit 60900705 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 121601: Have logout display index.cgi, not just a message on relogin.cgi.

Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
parent b4ab9588
...@@ -161,6 +161,7 @@ sub clear_browser_cookies { ...@@ -161,6 +161,7 @@ sub clear_browser_cookies {
my $cgi = Bugzilla->cgi; my $cgi = Bugzilla->cgi;
$cgi->remove_cookie('Bugzilla_login'); $cgi->remove_cookie('Bugzilla_login');
$cgi->remove_cookie('Bugzilla_logincookie'); $cgi->remove_cookie('Bugzilla_logincookie');
$cgi->remove_cookie('sudo');
} }
1; 1;
...@@ -38,12 +38,24 @@ use Bugzilla::Update; ...@@ -38,12 +38,24 @@ use Bugzilla::Update;
# Check whether or not the user is logged in # Check whether or not the user is logged in
my $user = Bugzilla->login(LOGIN_OPTIONAL); 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 # Main Body Execution
############################################################################### ###############################################################################
my $cgi = Bugzilla->cgi;
# Force to use HTTPS unless Bugzilla->params->{'ssl'} equals 'never'. # Force to use HTTPS unless Bugzilla->params->{'ssl'} equals 'never'.
# This is required because the user may want to log in from here. # This is required because the user may want to log in from here.
if ($cgi->protocol ne 'https' && Bugzilla->params->{'sslbase'} ne '' if ($cgi->protocol ne 'https' && Bugzilla->params->{'sslbase'} ne ''
...@@ -52,9 +64,6 @@ 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'}); $cgi->require_https(Bugzilla->params->{'sslbase'});
} }
my $template = Bugzilla->template;
my $vars = {};
# Return the appropriate HTTP response headers. # Return the appropriate HTTP response headers.
print $cgi->header(); print $cgi->header();
......
...@@ -37,7 +37,7 @@ use Date::Format; ...@@ -37,7 +37,7 @@ use Date::Format;
my $template = Bugzilla->template; my $template = Bugzilla->template;
my $cgi = Bugzilla->cgi; my $cgi = Bugzilla->cgi;
my $action = $cgi->param('action') || 'logout'; my $action = $cgi->param('action');
my $vars = {}; my $vars = {};
my $target; my $target;
...@@ -184,20 +184,6 @@ elsif ($action eq 'end-sudo') { ...@@ -184,20 +184,6 @@ elsif ($action eq 'end-sudo') {
$vars->{'message'} = 'sudo_ended'; $vars->{'message'} = 'sudo_ended';
$target = 'global/message.html.tmpl'; $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 # No valid action found
else { else {
Bugzilla->login(LOGIN_OPTIONAL); Bugzilla->login(LOGIN_OPTIONAL);
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<li> <li>
<span class="separator">| </span> <span class="separator">| </span>
[% IF user.authorizer.can_logout %] [% IF user.authorizer.can_logout %]
<a href="relogin.cgi">Log&nbsp;out</a> <a href="index.cgi?logout=1">Log&nbsp;out</a>
[% ELSE %] [% ELSE %]
Logged&nbsp;in&nbsp;as Logged&nbsp;in&nbsp;as
[% END %] [% END %]
......
...@@ -97,7 +97,8 @@ function normal_keypress_handler( aEvent ) { ...@@ -97,7 +97,8 @@ function normal_keypress_handler( aEvent ) {
<text class="text-link" onclick="load_relative_url('sanitycheck.cgi')" value="sanity check"/> <text class="text-link" onclick="load_relative_url('sanitycheck.cgi')" value="sanity check"/>
[%- END %] [%- END %]
[%- IF user.authorizer.can_logout %] [%- 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 %] [%- END %]
<separator class="thin"/> <separator class="thin"/>
[%- IF user.showmybugslink %] [%- IF user.showmybugslink %]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment