From 5437ceec7d1c9f31a3f48ccd48f0b760dc195ee0 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 17 Oct 2025 09:41:41 +0800 Subject: [PATCH] Enhance user registration status handling during third-party login - Updated the LoginThirdParty function to determine user status based on invitation requirements, setting it to "pending_invite" if an invite is required. - Improved user data mapping to reflect the new status logic, enhancing the user experience during the registration process. --- openapi/user/login.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openapi/user/login.go b/openapi/user/login.go index 66ab45c9..c6fa2565 100644 --- a/openapi/user/login.go +++ b/openapi/user/login.go @@ -79,6 +79,12 @@ func LoginThirdParty(providerID string, userinfo *oauthtypes.OIDCUserInfo, login userID, err = userProvider.GetOAuthUserID(ctx, providerID, userinfo.Sub) if err != nil && err.Error() == user.ErrOAuthAccountNotFound { + // Determine initial status based on invite requirement + status := "active" + if entryConfig.InviteRequired { + status = "pending_invite" // Waiting for invite code verification + } + userData := map[string]interface{}{ "name": userinfo.Name, "given_name": userinfo.GivenName, @@ -86,7 +92,7 @@ func LoginThirdParty(providerID string, userinfo *oauthtypes.OIDCUserInfo, login "picture": userinfo.Picture, "role_id": entryConfig.Role, "type_id": entryConfig.Type, - "status": "active", + "status": status, } // Auto register user