From 99bc06527254ed83cb2d981f3c86a199561e5619 Mon Sep 17 00:00:00 2001 From: kolaente Date: Fri, 27 Jun 2025 14:13:49 +0200 Subject: [PATCH] feat(user): use name for initals avatar, not username For external auth providers, the username might be randomly generated, which results in a random initial - this is unexpected and confusing for users. --- pkg/modules/avatar/initials/initials.go | 2 +- pkg/routes/api/v1/user_settings.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/modules/avatar/initials/initials.go b/pkg/modules/avatar/initials/initials.go index da5aa3991..9610acc22 100644 --- a/pkg/modules/avatar/initials/initials.go +++ b/pkg/modules/avatar/initials/initials.go @@ -143,7 +143,7 @@ func getAvatarForUser(u *user.User) (fullSizeAvatar *image.RGBA64, err error) { if !exists { log.Debugf("Initials avatar for user %d not cached, creating...", u.ID) - firstRune := []rune(strings.ToUpper(u.Username))[0] + firstRune := []rune(strings.ToUpper(u.Name))[0] bg := avatarBgColors[int(u.ID)%len(avatarBgColors)] // Random color based on the user id fullSizeAvatar, err = drawImage(firstRune, bg) diff --git a/pkg/routes/api/v1/user_settings.go b/pkg/routes/api/v1/user_settings.go index 5d31c8089..e2c70d7b6 100644 --- a/pkg/routes/api/v1/user_settings.go +++ b/pkg/routes/api/v1/user_settings.go @@ -144,6 +144,10 @@ func ChangeUserAvatarProvider(c echo.Context) error { return handler.HandleHTTPError(err) } + if user.AvatarProvider == "initials" { + avatar.FlushAllCaches(user) + } + if err := s.Commit(); err != nil { _ = s.Rollback() return handler.HandleHTTPError(err)