From 5d81027b345805ac1e3dd0481057cfdabf207d3c Mon Sep 17 00:00:00 2001 From: chan Date: Wed, 25 Mar 2026 17:14:40 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20UpdateMe=20=ED=95=B8=EB=93=A4=EB=9F=AC?= =?UTF-8?q?=20=EB=82=B4=20=EA=B3=84=EC=B8=B5=ED=98=95=20=EB=A9=94=ED=83=80?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B2=98=EB=A6=AC=20=EB=B0=8F=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20ID=20=EB=8F=99=EA=B8=B0=ED=99=94?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EB=B3=B4=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/handler/auth_handler.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/internal/handler/auth_handler.go b/backend/internal/handler/auth_handler.go index 2c0e3857..3a6adbd1 100644 --- a/backend/internal/handler/auth_handler.go +++ b/backend/internal/handler/auth_handler.go @@ -5283,20 +5283,27 @@ func (h *AuthHandler) UpdateMe(c *fiber.Ctx) error { if schemaCompCode != "" && h.TenantService != nil { if tenant, err := h.TenantService.GetTenantBySlug(c.Context(), schemaCompCode); err == nil && tenant != nil { if loginIDField, ok := tenant.Config["loginIdField"].(string); ok && loginIDField != "" { + slog.Debug("[UpdateMe] Login ID sync active", "field", loginIDField) // Search in Metadata (could be flat or namespaced) + var newLoginID string if val, exists := req.Metadata[loginIDField]; exists { - if loginIDStr, ok := val.(string); ok && loginIDStr != "" { - traits["id"] = loginIDStr + if s, ok := val.(string); ok { + newLoginID = s } } else if namespaced, exists := req.Metadata[tenant.ID]; exists { if subMeta, ok := namespaced.(map[string]any); ok { if val, exists := subMeta[loginIDField]; exists { - if loginIDStr, ok := val.(string); ok && loginIDStr != "" { - traits["id"] = loginIDStr + if s, ok := val.(string); ok { + newLoginID = s } } } } + + if newLoginID != "" { + slog.Info("[UpdateMe] Syncing custom field to LoginID", "field", loginIDField, "value", newLoginID) + traits["id"] = newLoginID + } } } }