@ -7,12 +7,14 @@ package user
import (
import (
"errors"
"errors"
"net/url"
"net/url"
"path"
"strconv"
"strconv"
"strings"
"strings"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
)
)
// Avatar redirect browser to user avatar of requested size
// Avatar redirect browser to user avatar of requested size
@ -70,8 +72,21 @@ func AvatarByEmailHash(ctx *context.Context) {
}
}
var avatarURL * url . URL
var avatarURL * url . URL
avatarURL , err = models . LibravatarURL ( email )
if err != nil {
if setting . EnableFederatedAvatar && setting . LibravatarService != nil {
avatarURL , err = models . LibravatarURL ( email )
if err != nil {
avatarURL , err = url . Parse ( models . DefaultAvatarLink ( ) )
if err != nil {
ctx . ServerError ( "invalid default avatar url" , err )
return
}
}
} else if ! setting . DisableGravatar {
copyOfGravatarSourceURL := * setting . GravatarSourceURL
avatarURL = & copyOfGravatarSourceURL
avatarURL . Path = path . Join ( avatarURL . Path , hash )
} else {
avatarURL , err = url . Parse ( models . DefaultAvatarLink ( ) )
avatarURL , err = url . Parse ( models . DefaultAvatarLink ( ) )
if err != nil {
if err != nil {
ctx . ServerError ( "invalid default avatar url" , err )
ctx . ServerError ( "invalid default avatar url" , err )