]> source.dussan.org Git - gitea.git/commitdiff
Suppress `ExternalLoginUserNotExist` error (#21504)
authorKN4CK3R <admin@oldschoolhack.me>
Wed, 19 Oct 2022 19:07:21 +0000 (21:07 +0200)
committerGitHub <noreply@github.com>
Wed, 19 Oct 2022 19:07:21 +0000 (20:07 +0100)
Fixes #21202
Closes #21276

An `ExternalLoginUser` is not mandatory if the current user account was
created with/by the external login source.

routers/web/auth/auth.go
routers/web/auth/oauth.go

index 8a4c12d57b5734524b31517abe46aad11b66ed30..b48bdb995177f509a9b2a2610d480bad4bea5300 100644 (file)
@@ -6,6 +6,7 @@
 package auth
 
 import (
+       "errors"
        "fmt"
        "net/http"
        "strings"
@@ -24,6 +25,7 @@ import (
        "code.gitea.io/gitea/modules/session"
        "code.gitea.io/gitea/modules/setting"
        "code.gitea.io/gitea/modules/timeutil"
+       "code.gitea.io/gitea/modules/util"
        "code.gitea.io/gitea/modules/web"
        "code.gitea.io/gitea/modules/web/middleware"
        "code.gitea.io/gitea/routers/utils"
@@ -619,7 +621,9 @@ func handleUserCreated(ctx *context.Context, u *user_model.User, gothUser *goth.
        // update external user information
        if gothUser != nil {
                if err := externalaccount.UpdateExternalUser(u, *gothUser); err != nil {
-                       log.Error("UpdateExternalUser failed: %v", err)
+                       if !errors.Is(err, util.ErrNotExist) {
+                               log.Error("UpdateExternalUser failed: %v", err)
+                       }
                }
        }
 
index c172215b903d1b12e9eaa1160f4c144f4b8e0184..e0e3c6e59f740774b593c40b47967c5357318088 100644 (file)
@@ -1068,7 +1068,9 @@ func handleOAuth2SignIn(ctx *context.Context, source *auth.Source, u *user_model
 
                // update external user information
                if err := externalaccount.UpdateExternalUser(u, gothUser); err != nil {
-                       log.Error("UpdateExternalUser failed: %v", err)
+                       if !errors.Is(err, util.ErrNotExist) {
+                               log.Error("UpdateExternalUser failed: %v", err)
+                       }
                }
 
                if err := resetLocale(ctx, u); err != nil {