// AvatarLink tries to match user in database with e-mail // in order to show custom avatar, and falls back to general avatar link. func (push *PushCommits) AvatarLink(email string) string { _, ok := push.avatars[email] if !ok { u, err := GetUserByEmail(email) if err != nil { push.avatars[email] = base.AvatarLink(email) if !IsErrUserNotExist(err) { log.Error(4, "GetUserByEmail: %v", err) } } else { push.avatars[email] = u.AvatarLink() } } return push.avatars[email] }
// RelAvatarLink returns relative avatar link to the site domain, // 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 } switch { case u.UseCustomAvatar: if !com.IsExist(u.CustomAvatarPath()) { return defaultImgUrl } return setting.AppSubUrl + "/avatars/" + com.ToStr(u.ID) case setting.DisableGravatar, setting.OfflineMode: if !com.IsExist(u.CustomAvatarPath()) { if err := u.GenerateRandomAvatar(); err != nil { log.Error(3, "GenerateRandomAvatar: %v", err) } } return setting.AppSubUrl + "/avatars/" + com.ToStr(u.ID) } return base.AvatarLink(u.AvatarEmail) }