]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1502198 - GitHubAuth cannot be removed from user_info_class indata/params if...
authordklawren <dklawren@users.noreply.github.com>
Fri, 26 Oct 2018 21:18:28 +0000 (17:18 -0400)
committerGitHub <noreply@github.com>
Fri, 26 Oct 2018 21:18:28 +0000 (17:18 -0400)
extensions/GitHubAuth/Extension.pm

index d0d9f42f13e37e64a837dcdffb9a077d2bf5be0f..c91bdaa317aa7566447d72bdb5100e48364a50b1 100644 (file)
@@ -24,14 +24,17 @@ use URI::QueryParam;
 our $VERSION = '0.01';
 
 BEGIN {
-    # Monkey-patch can() on Bugzilla::Auth::Login::CGI so that our own fail_nodata gets called.
+    # Monkey-patch can() on Bugzilla::Auth::Login::CGI so that our own fail_nodata gets called
+    # if GitHubAuth is enabled in user_info_class.
     # Our fail_nodata behaves like CGI's, so this shouldn't be a problem for CGI-based logins.
-
     *Bugzilla::Auth::Login::CGI::can = sub {
         my ($stack, $method) = @_;
-
-        return undef if $method eq 'fail_nodata';
-        return $stack->SUPER::can($method);
+        if (Bugzilla->params->{user_info_class} !~ /\bGitHubAuth\b/
+            || $method ne 'fail_nodata')
+        {
+            return $stack->SUPER::can($method);
+        }
+        return undef;
     };
 }