@@ -256,12 +256,17 @@ func (h *AuthHandler) findOrCreateUser(ctx context.Context, claims *BrunstadTVCl
256256 displayName = member .DisplayName
257257
258258 // Compute name for backward compatibility
259- if displayName != "" {
260- computedName = displayName
261- } else if firstName != "" && lastName != "" {
259+ if firstName != "" && lastName != "" {
262260 computedName = firstName + " " + lastName
263261 } else if firstName != "" {
264262 computedName = firstName
263+ } else if displayName != "" {
264+ computedName = displayName
265+ }
266+
267+ // Generate display name if API didn't provide one
268+ if displayName == "" {
269+ displayName = generateDisplayName (firstName , lastName , computedName )
265270 }
266271
267272 // Parse birthdate if available
@@ -309,6 +314,11 @@ func (h *AuthHandler) findOrCreateUser(ctx context.Context, claims *BrunstadTVCl
309314 firstName = claims .FirstName
310315 }
311316
317+ // Ensure display name is set (fallback case when API wasn't available)
318+ if displayName == "" {
319+ displayName = generateDisplayName (firstName , lastName , computedName )
320+ }
321+
312322 // Normalize gender to match database constraint (MALE, FEMALE)
313323 gender := normalizeGender (claims .Gender )
314324
@@ -408,3 +418,12 @@ func normalizeGender(gender string) string {
408418 }
409419 return "UNKNOWN"
410420}
421+
422+ // generateDisplayName creates a display name in the format "FirstName L." if both names are provided,
423+ // otherwise returns the fallback name
424+ func generateDisplayName (firstName , lastName , fallbackName string ) string {
425+ if firstName != "" && lastName != "" {
426+ return firstName + " " + string ([]rune (lastName )[0 ]) + "."
427+ }
428+ return fallbackName
429+ }
0 commit comments