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 {
my $cgi = Bugzilla->cgi;
$cgi->remove_cookie('Bugzilla_login');
$cgi->remove_cookie('Bugzilla_logincookie');
$cgi->remove_cookie('sudo');
}
1;
......@@ -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();
......
......@@ -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);
......
......@@ -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 %]
......
......@@ -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 %]
......
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