summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Auth/Login/Stack.pm
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2011-11-22 00:01:04 +0100
committerDave Lawrence <dlawrence@mozilla.com>2011-11-22 00:01:04 +0100
commit5f1ae49c9a96fca5be3297c4d6b322df4c7ac77f (patch)
tree0dff9880cef5fdf236ebe16b788366a28599927b /Bugzilla/Auth/Login/Stack.pm
parentb689f676ba312e3a06d1f8f68df520f5ca220381 (diff)
parent4d99c123ee568e5a548968de8417ebc70a24efe4 (diff)
downloadbugzilla-5f1ae49c9a96fca5be3297c4d6b322df4c7ac77f.tar.gz
bugzilla-5f1ae49c9a96fca5be3297c4d6b322df4c7ac77f.tar.xz
merged with bmo/4.2
Diffstat (limited to 'Bugzilla/Auth/Login/Stack.pm')
-rw-r--r--Bugzilla/Auth/Login/Stack.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/Bugzilla/Auth/Login/Stack.pm b/Bugzilla/Auth/Login/Stack.pm
index 0f3661954..e8d9c4635 100644
--- a/Bugzilla/Auth/Login/Stack.pm
+++ b/Bugzilla/Auth/Login/Stack.pm
@@ -28,6 +28,7 @@ use fields qw(
);
use Hash::Util qw(lock_keys);
use Bugzilla::Hook;
+use Bugzilla::Constants;
use List::MoreUtils qw(any);
sub new {
@@ -60,8 +61,13 @@ sub get_login_info {
}
$result = $object->get_login_info(@_);
$self->{successful} = $object;
- last if !$result->{failure};
- # So that if none of them succeed, it's undef.
+
+ # We only carry on down the stack if this method denied all knowledge.
+ last unless ($result->{failure}
+ && ($result->{failure} eq AUTH_NODATA
+ || $result->{failure} eq AUTH_NO_SUCH_USER));
+
+ # If none of the methods succeed, it's undef.
$self->{successful} = undef;
}
return $result;