Commit 31570d1a authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 493642: Never include hidden_fields in the header/footer login form, and…

Bug 493642: Never include hidden_fields in the header/footer login form, and when a REQUIRE_LOGIN page shows a login form, hide the header/footer login form. Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
parent f78ab4f4
...@@ -228,6 +228,10 @@ sub sudo_request { ...@@ -228,6 +228,10 @@ sub sudo_request {
# NOTE: If you want to log the start of an sudo session, do it here. # NOTE: If you want to log the start of an sudo session, do it here.
} }
sub page_requires_login {
return $_[0]->request_cache->{page_requires_login};
}
sub login { sub login {
my ($class, $type) = @_; my ($class, $type) = @_;
...@@ -235,6 +239,13 @@ sub login { ...@@ -235,6 +239,13 @@ sub login {
my $authorizer = new Bugzilla::Auth(); my $authorizer = new Bugzilla::Auth();
$type = LOGIN_REQUIRED if $class->cgi->param('GoAheadAndLogIn'); $type = LOGIN_REQUIRED if $class->cgi->param('GoAheadAndLogIn');
# Allow templates to know that we're in a page that always requires
# login.
if ($type == LOGIN_REQUIRED) {
$class->request_cache->{page_requires_login} = 1;
}
if (!defined $type || $type == LOGIN_NORMAL) { if (!defined $type || $type == LOGIN_NORMAL) {
$type = $class->params->{'requirelogin'} ? LOGIN_REQUIRED : LOGIN_NORMAL; $type = $class->params->{'requirelogin'} ? LOGIN_REQUIRED : LOGIN_NORMAL;
} }
...@@ -635,6 +646,13 @@ Logs in a user, returning a C<Bugzilla::User> object, or C<undef> if there is ...@@ -635,6 +646,13 @@ Logs in a user, returning a C<Bugzilla::User> object, or C<undef> if there is
no logged in user. See L<Bugzilla::Auth|Bugzilla::Auth>, and no logged in user. See L<Bugzilla::Auth|Bugzilla::Auth>, and
L<Bugzilla::User|Bugzilla::User>. L<Bugzilla::User|Bugzilla::User>.
=item C<page_requires_login>
If the current page always requires the user to log in (for example,
C<enter_bug.cgi> or any page called with C<?GoAheadAndLogIn=1>) then
this will return something true. Otherwise it will return false. (This is
set when you call L</login>.)
=item C<logout($option)> =item C<logout($option)>
Logs out the current user, which involves invalidating user sessions and Logs out the current user, which involves invalidating user sessions and
......
...@@ -68,10 +68,6 @@ ...@@ -68,10 +68,6 @@
[% END %] [% END %]
<input type="submit" name="GoAheadAndLogIn" value="Log in" <input type="submit" name="GoAheadAndLogIn" value="Log in"
id="log_in[% qs_suffix %]"> id="log_in[% qs_suffix %]">
<div class="bz_default_hidden">
[% PROCESS "global/hidden-fields.html.tmpl"
exclude="^Bugzilla_(login|password|restrictlogin|remember)$" %]
</div>
<script type="text/javascript"> <script type="text/javascript">
mini_login_constants = { mini_login_constants = {
"login" : "login", "login" : "login",
......
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
enter your login name below and submit a request enter your login name below and submit a request
to change your password.<br> to change your password.<br>
<input size="35" name="loginname"> <input size="35" name="loginname">
<input type="submit" id="request" value="Submit Request"> <input type="submit" id="request" value="Reset Password">
</form> </form>
[% END %] [% END %]
......
...@@ -89,7 +89,14 @@ ...@@ -89,7 +89,14 @@
</li> </li>
[% END %] [% END %]
[% IF user.authorizer.can_login %] [%# Only display one login form when we're on a LOGIN_REQUIRED page. That
# way, we're guaranteed that the user will use the form that has
# hidden_fields in it (the center form) instead of this one. Also, it's
# less confusing to have one form (as opposed to three) when you're
# required to log in.
#%]
[% USE Bugzilla %]
[% IF user.authorizer.can_login && !Bugzilla.page_requires_login %]
[% PROCESS "account/auth/login-small.html.tmpl" %] [% PROCESS "account/auth/login-small.html.tmpl" %]
[% END %] [% END %]
[% END %] [% END %]
......
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