diff --git a/models/user.go b/models/user.go index 6484c8cf6..2a4fb557d 100644 --- a/models/user.go +++ b/models/user.go @@ -333,15 +333,14 @@ func (u *User) generateRandomAvatar(e Engine) error { // which includes app sub-url as prefix. However, it is possible // to return full URL if user enables Gravatar-like service. func (u *User) RelAvatarLink() string { - defaultImgURL := setting.AppSubURL + "/img/avatar_default.png" if u.ID == -1 { - return defaultImgURL + return base.DefaultAvatarLink() } switch { case u.UseCustomAvatar: if !com.IsFile(u.CustomAvatarPath()) { - return defaultImgURL + return base.DefaultAvatarLink() } return setting.AppSubURL + "/avatars/" + u.Avatar case setting.DisableGravatar, setting.OfflineMode: diff --git a/modules/base/tool.go b/modules/base/tool.go index 0f730868e..1bf1ce395 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -192,6 +192,10 @@ func HashEmail(email string) string { return EncodeMD5(strings.ToLower(strings.TrimSpace(email))) } +func DefaultAvatarLink() string { + return setting.AppSubURL + "/img/avatar_default.png" +} + // AvatarLink returns relative avatar link to the site domain by given email, // which includes app sub-url as prefix. However, it is possible // to return full URL if user enables Gravatar-like service. @@ -200,6 +204,7 @@ func AvatarLink(email string) string { url, err := setting.LibravatarService.FromEmail(email) if err != nil { log.Error(4, "LibravatarService.FromEmail(email=%s): error %v", email, err) + return DefaultAvatarLink() } return url } @@ -208,7 +213,7 @@ func AvatarLink(email string) string { return setting.GravatarSource + HashEmail(email) } - return setting.AppSubURL + "/img/avatar_default.png" + return DefaultAvatarLink() } // Seconds-based time units