From 23f072887935a6aa81634ef487432ff2b5fa250a Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Thu, 29 Jun 2017 10:30:58 -0400 Subject: [PATCH 1/3] Don't ignore gravatar error --- modules/base/tool.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/base/tool.go b/modules/base/tool.go index 8952e7a8c9..0f730868eb 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -197,8 +197,10 @@ func HashEmail(email string) string { // 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 url } From 05e37264154bbcb375b358798c7a8f9b499c4881 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Thu, 29 Jun 2017 12:10:33 -0400 Subject: [PATCH 2/3] Use default avatar on error --- models/user.go | 5 ++--- modules/base/tool.go | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/models/user.go b/models/user.go index 6484c8cf69..2a4fb557db 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 0f730868eb..1bf1ce3951 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 From 2b410e44b2813648d670feb2fd543638bd8a4c80 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Thu, 29 Jun 2017 12:11:34 -0400 Subject: [PATCH 3/3] lint --- modules/base/tool.go | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/base/tool.go b/modules/base/tool.go index 1bf1ce3951..543775e0df 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -192,6 +192,7 @@ 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" }