diff options
author | Gusted <postmaster@gusted.xyz> | 2023-01-02 22:46:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-02 22:46:39 +0100 |
commit | 96797fed311151ff889f87c94c7b6aaa16c5d535 (patch) | |
tree | 30892e553fa197e8205b9d1ddad82aef3e707caa /services/user/user.go | |
parent | fcd6ceef2b76aabd6a8ffab688492cc7f69269bf (diff) | |
download | gitea-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.go | 7 |
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) } |