aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaweł Bogusławski <pawel.boguslawski@ib.pl>2020-10-26 14:56:14 +0100
committerGitHub <noreply@github.com>2020-10-26 15:56:14 +0200
commit28133a801a41a04470ddea9170acbba7dd2126e5 (patch)
tree33d1af3ea7cb9a393c32cfba5483976cb7761aa4
parent3d272b899d77a6bff864784d8f947bc1ca90fe60 (diff)
downloadgitea-28133a801a41a04470ddea9170acbba7dd2126e5.tar.gz
gitea-28133a801a41a04470ddea9170acbba7dd2126e5.zip
Avatar autogeneration fixed (#13282)
This mod fixes problem with initial avatar autogeneration and avatar autogneration after deleting previous avatar. Related: https://github.com/go-gitea/gitea/issues/13159 Fixes: 80a6b0f5bce15a641fc75f5f1ef6e42ef54424bc Author-Change-Id: IB#1105243
-rw-r--r--models/user.go4
-rw-r--r--models/user_avatar.go5
-rw-r--r--routers/user/setting/profile.go6
3 files changed, 7 insertions, 8 deletions
diff --git a/models/user.go b/models/user.go
index 7248db5337..1ab417115f 100644
--- a/models/user.go
+++ b/models/user.go
@@ -191,9 +191,6 @@ func (u *User) BeforeUpdate() {
if len(u.AvatarEmail) == 0 {
u.AvatarEmail = u.Email
}
- if len(u.AvatarEmail) > 0 && u.Avatar == "" {
- u.Avatar = base.HashEmail(u.AvatarEmail)
- }
}
u.LowerName = strings.ToLower(u.Name)
@@ -835,7 +832,6 @@ func CreateUser(u *User) (err error) {
u.LowerName = strings.ToLower(u.Name)
u.AvatarEmail = u.Email
- u.Avatar = base.HashEmail(u.AvatarEmail)
if u.Rands, err = GetUserSalt(); err != nil {
return err
}
diff --git a/models/user_avatar.go b/models/user_avatar.go
index 0a03ca7707..2f9db5c2e2 100644
--- a/models/user_avatar.go
+++ b/models/user_avatar.go
@@ -39,10 +39,9 @@ func (u *User) generateRandomAvatar(e Engine) error {
if err != nil {
return fmt.Errorf("RandomImage: %v", err)
}
- // NOTICE for random avatar, it still uses id as avatar name, but custom avatar use md5
- // since random image is not a user's photo, there is no security for enumable
+
if u.Avatar == "" {
- u.Avatar = fmt.Sprintf("%d", u.ID)
+ u.Avatar = base.HashEmail(u.AvatarEmail)
}
if err := storage.SaveFrom(storage.Avatars, u.CustomAvatarRelativePath(), func(w io.Writer) error {
diff --git a/routers/user/setting/profile.go b/routers/user/setting/profile.go
index 1cb00aa77f..edb78031f2 100644
--- a/routers/user/setting/profile.go
+++ b/routers/user/setting/profile.go
@@ -121,7 +121,11 @@ func ProfilePost(ctx *context.Context, form auth.UpdateProfileForm) {
func UpdateAvatarSetting(ctx *context.Context, form auth.AvatarForm, ctxUser *models.User) error {
ctxUser.UseCustomAvatar = form.Source == auth.AvatarLocal
if len(form.Gravatar) > 0 {
- ctxUser.Avatar = base.EncodeMD5(form.Gravatar)
+ if form.Avatar != nil {
+ ctxUser.Avatar = base.EncodeMD5(form.Gravatar)
+ } else {
+ ctxUser.Avatar = ""
+ }
ctxUser.AvatarEmail = form.Gravatar
}