]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 340967: The login form appears twice when trying to add an attachment (due to...
authorlpsolit%gmail.com <>
Thu, 6 Jul 2006 06:42:47 +0000 (06:42 +0000)
committerlpsolit%gmail.com <>
Thu, 6 Jul 2006 06:42:47 +0000 (06:42 +0000)
Bugzilla/Auth/Login/Cookie.pm

index 41d8a215253e99150ee929200b15531bcea2eb89..e2cd8f5eef169cdbad391b812961cb2176f3b92c 100644 (file)
@@ -22,6 +22,8 @@ use base qw(Bugzilla::Auth::Login);
 use Bugzilla::Constants;
 use Bugzilla::Util;
 
+use List::Util qw(first);
+
 use constant requires_persistence  => 0;
 use constant requires_verification => 0;
 use constant can_login => 0;
@@ -38,6 +40,19 @@ sub get_login_info {
     my $login_cookie = $cgi->cookie("Bugzilla_logincookie");
     my $user_id      = $cgi->cookie("Bugzilla_login");
 
+    # If cookies cannot be found, this could mean that they haven't
+    # been made available yet. In this case, look at Bugzilla_cookie_list.
+    unless ($login_cookie) {
+        my $cookie = first {$_->name eq 'Bugzilla_logincookie'}
+                            @{$cgi->{'Bugzilla_cookie_list'}};
+        $login_cookie = $cookie->value if $cookie;
+    }
+    unless ($user_id) {
+        my $cookie = first {$_->name eq 'Bugzilla_login'}
+                            @{$cgi->{'Bugzilla_cookie_list'}};
+        $user_id = $cookie->value if $cookie;
+    }
+
     if ($login_cookie && $user_id) {
         # Anything goes for these params - they're just strings which
         # we're going to verify against the db