From 31570d1a282a92dd2f9f745414c2c40dbd4bdff1 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 4 Jun 2009 22:54:38 +0000 Subject: 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 r=LpSolit, a=LpSolit --- Bugzilla.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'Bugzilla.pm') diff --git a/Bugzilla.pm b/Bugzilla.pm index 7bd40794a..1916fa508 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -228,6 +228,10 @@ sub sudo_request { # 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 { my ($class, $type) = @_; @@ -235,6 +239,13 @@ sub login { my $authorizer = new Bugzilla::Auth(); $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) { $type = $class->params->{'requirelogin'} ? LOGIN_REQUIRED : LOGIN_NORMAL; } @@ -635,6 +646,13 @@ Logs in a user, returning a C object, or C if there is no logged in user. See L, and L. +=item C + +If the current page always requires the user to log in (for example, +C or any page called with C) then +this will return something true. Otherwise it will return false. (This is +set when you call L.) + =item C Logs out the current user, which involves invalidating user sessions and -- cgit v1.2.3-24-g4f1b