From 6caf04c12905cb53021ac9979cd3c20a38e9ac68 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Tue, 11 Jul 2017 02:00:43 -0400 Subject: [PATCH] Don't ignore gravatar error (#2138) --- models/user.go | 5 ++--- modules/base/tool.go | 14 +++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/models/user.go b/models/user.go index 8cec1788b..1e1029036 100644 --- a/models/user.go +++ b/models/user.go @@ -328,15 +328,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 32987a0b8..ab2b101df 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -192,13 +192,21 @@ func HashEmail(email string) string { return EncodeMD5(strings.ToLower(strings.TrimSpace(email))) } +// DefaultAvatarLink the default avatar link +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. func AvatarLink(email string) string { if setting.EnableFederatedAvatar && setting.LibravatarService != nil { - // TODO: This doesn't check any error. AvatarLink should return (string, error) - url, _ := setting.LibravatarService.FromEmail(email) + url, err := setting.LibravatarService.FromEmail(email) + if err != nil { + log.Error(4, "LibravatarService.FromEmail(email=%s): error %v", email, err) + return DefaultAvatarLink() + } return url } @@ -206,7 +214,7 @@ func AvatarLink(email string) string { return setting.GravatarSource + HashEmail(email) } - return setting.AppSubURL + "/img/avatar_default.png" + return DefaultAvatarLink() } // Seconds-based time units