diff options
author | Gervase Markham <gerv@gerv.net> | 2011-11-18 11:15:43 +0100 |
---|---|---|
committer | Gervase Markham <gerv@mozilla.org> | 2011-11-18 11:15:43 +0100 |
commit | 31009dd4d8c9f1462d3026e04095c8befc307fd2 (patch) | |
tree | 34b207a7145b2e542d4c657d5e8a22ef290aa7e3 | |
parent | a9fcd866bede799a2527d9630ce56e8980ebdcac (diff) | |
download | bugzilla-31009dd4d8c9f1462d3026e04095c8befc307fd2.tar.gz bugzilla-31009dd4d8c9f1462d3026e04095c8befc307fd2.tar.xz |
Make Login/Stack.pm refuse to continue down the stack if an Auth method returns an explicit failure. r=dkl, a=mkanat.
https://bugzilla.mozilla.org/show_bug.cgi?id=698423
-rw-r--r-- | Bugzilla/Auth/Login/Stack.pm | 10 |
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; |