aboutsummaryrefslogtreecommitdiffstats
path: root/services/user/user.go
diff options
context:
space:
mode:
authorGusted <postmaster@gusted.xyz>2023-01-02 22:46:39 +0100
committerGitHub <noreply@github.com>2023-01-02 22:46:39 +0100
commit96797fed311151ff889f87c94c7b6aaa16c5d535 (patch)
tree30892e553fa197e8205b9d1ddad82aef3e707caa /services/user/user.go
parentfcd6ceef2b76aabd6a8ffab688492cc7f69269bf (diff)
downloadgitea-96797fed311151ff889f87c94c7b6aaa16c5d535.tar.gz
gitea-96797fed311151ff889f87c94c7b6aaa16c5d535.zip
Unify hashing for avatar (#22289)
- Unify the hashing code for repository and user avatars into a function. - Use a sane hash function instead of MD5. - Only require hashing once instead of twice(w.r.t. hashing for user avatar). - Improve the comment for the hashing code of why it works. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Yarden Shoham <hrsi88@gmail.com>
Diffstat (limited to 'services/user/user.go')
-rw-r--r--services/user/user.go7
1 files changed, 1 insertions, 6 deletions
diff --git a/services/user/user.go b/services/user/user.go
index 65db732bf9..c95eb67a85 100644
--- a/services/user/user.go
+++ b/services/user/user.go
@@ -5,7 +5,6 @@ package user
import (
"context"
- "crypto/md5"
"fmt"
"image/png"
"io"
@@ -241,11 +240,7 @@ func UploadAvatar(u *user_model.User, data []byte) error {
defer committer.Close()
u.UseCustomAvatar = true
- // Different users can upload same image as avatar
- // If we prefix it with u.ID, it will be separated
- // Otherwise, if any of the users delete his avatar
- // Other users will lose their avatars too.
- u.Avatar = fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprintf("%d-%x", u.ID, md5.Sum(data)))))
+ u.Avatar = avatar.HashAvatar(u.ID, data)
if err = user_model.UpdateUserCols(ctx, u, "use_custom_avatar", "avatar"); err != nil {
return fmt.Errorf("updateUser: %w", err)
}