mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	Send size to /avatars if requested (#15459)
If an avatar is requested in a particular size ensure that /avatars also gets the size request Fix #15453 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -81,7 +81,7 @@ func LibravatarURL(email string) (*url.URL, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HashedAvatarLink returns an avatar link for a provided email
 | 
			
		||||
func HashedAvatarLink(email string) string {
 | 
			
		||||
func HashedAvatarLink(email string, size int) string {
 | 
			
		||||
	lowerEmail := strings.ToLower(strings.TrimSpace(email))
 | 
			
		||||
	sum := fmt.Sprintf("%x", md5.Sum([]byte(lowerEmail)))
 | 
			
		||||
	_, _ = cache.GetString("Avatar:"+sum, func() (string, error) {
 | 
			
		||||
@@ -108,6 +108,9 @@ func HashedAvatarLink(email string) string {
 | 
			
		||||
		}
 | 
			
		||||
		return lowerEmail, nil
 | 
			
		||||
	})
 | 
			
		||||
	if size > 0 {
 | 
			
		||||
		return setting.AppSubURL + "/avatar/" + url.PathEscape(sum) + "?size=" + strconv.Itoa(size)
 | 
			
		||||
	}
 | 
			
		||||
	return setting.AppSubURL + "/avatar/" + url.PathEscape(sum)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -129,7 +132,7 @@ func SizedAvatarLink(email string, size int) string {
 | 
			
		||||
		// This is the slow path that would need to call LibravatarURL() which
 | 
			
		||||
		// does DNS lookups. Avoid it by issuing a redirect so we don't block
 | 
			
		||||
		// the template render with network requests.
 | 
			
		||||
		return HashedAvatarLink(email)
 | 
			
		||||
		return HashedAvatarLink(email, size)
 | 
			
		||||
	} else if !setting.DisableGravatar {
 | 
			
		||||
		// copy GravatarSourceURL, because we will modify its Path.
 | 
			
		||||
		copyOfGravatarSourceURL := *setting.GravatarSourceURL
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,9 @@ func (u *User) RealSizedAvatarLink(size int) string {
 | 
			
		||||
		if u.Avatar == "" {
 | 
			
		||||
			return DefaultAvatarLink()
 | 
			
		||||
		}
 | 
			
		||||
		if size > 0 {
 | 
			
		||||
			return setting.AppSubURL + "/avatars/" + u.Avatar + "?size=" + strconv.Itoa(size)
 | 
			
		||||
		}
 | 
			
		||||
		return setting.AppSubURL + "/avatars/" + u.Avatar
 | 
			
		||||
	case setting.DisableGravatar, setting.OfflineMode:
 | 
			
		||||
		if u.Avatar == "" {
 | 
			
		||||
@@ -89,7 +92,9 @@ func (u *User) RealSizedAvatarLink(size int) string {
 | 
			
		||||
				log.Error("GenerateRandomAvatar: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if size > 0 {
 | 
			
		||||
			return setting.AppSubURL + "/avatars/" + u.Avatar + "?size=" + strconv.Itoa(size)
 | 
			
		||||
		}
 | 
			
		||||
		return setting.AppSubURL + "/avatars/" + u.Avatar
 | 
			
		||||
	}
 | 
			
		||||
	return SizedAvatarLink(u.AvatarEmail, size)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user