Skip to content

Commit 7947e9c

Browse files
Update user avatar name
1 parent bb14679 commit 7947e9c

File tree

2 files changed

+25
-28
lines changed

2 files changed

+25
-28
lines changed

models/migrations/v115.go

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
package migrations
66

77
import (
8+
"crypto/md5"
89
"fmt"
910
"io"
1011
"os"
1112
"path/filepath"
12-
"strconv"
13-
"strings"
1413

1514
"code.gitea.io/gitea/modules/setting"
1615

@@ -36,37 +35,35 @@ func renameExistingUserAvatarName(x *xorm.Engine) error {
3635

3736
deleteList := make([]string, 0, len(users))
3837
for _, user := range users {
39-
if !strings.HasPrefix(user.Avatar, strconv.FormatInt(user.ID, 10)+"-") {
40-
oldAvatar := user.Avatar
41-
newAvatar := fmt.Sprintf("%d-%s", user.ID, user.Avatar)
38+
oldAvatar := user.Avatar
39+
newAvatar := fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprintf("%d-%s", user.ID, user.Avatar))))
4240

43-
if _, err := os.Stat(filepath.Join(setting.AvatarUploadPath, oldAvatar)); err != nil {
44-
continue
45-
}
46-
47-
fr, err := os.Open(filepath.Join(setting.AvatarUploadPath, oldAvatar))
48-
if err != nil {
49-
return err
50-
}
51-
defer fr.Close()
41+
if _, err := os.Stat(filepath.Join(setting.AvatarUploadPath, oldAvatar)); err != nil {
42+
continue
43+
}
5244

53-
fw, err := os.Create(filepath.Join(setting.AvatarUploadPath, newAvatar))
54-
if err != nil {
55-
return err
56-
}
57-
defer fw.Close()
45+
fr, err := os.Open(filepath.Join(setting.AvatarUploadPath, oldAvatar))
46+
if err != nil {
47+
return err
48+
}
49+
defer fr.Close()
5850

59-
if _, err := io.Copy(fw, fr); err != nil {
60-
return err
61-
}
51+
fw, err := os.Create(filepath.Join(setting.AvatarUploadPath, newAvatar))
52+
if err != nil {
53+
return err
54+
}
55+
defer fw.Close()
6256

63-
user.Avatar = newAvatar
64-
if _, err := sess.ID(user.ID).Update(&user); err != nil {
65-
return err
66-
}
57+
if _, err := io.Copy(fw, fr); err != nil {
58+
return err
59+
}
6760

68-
deleteList = append(deleteList, filepath.Join(setting.AvatarUploadPath, oldAvatar))
61+
user.Avatar = newAvatar
62+
if _, err := sess.ID(user.ID).Update(&user); err != nil {
63+
return err
6964
}
65+
66+
deleteList = append(deleteList, filepath.Join(setting.AvatarUploadPath, oldAvatar))
7067
}
7168
for _, file := range deleteList {
7269
if err := os.Remove(file); err != nil {

models/user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ func (u *User) UploadAvatar(data []byte) error {
525525
// If we prefix it with u.ID, it will be separated
526526
// Otherwise, if any of the users delete his avatar
527527
// Other users will lose their avatars too.
528-
u.Avatar = fmt.Sprintf("%d-%x", u.ID, md5.Sum(data))
528+
u.Avatar = fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprintf("%d-%x", u.ID, md5.Sum(data)))))
529529
if err = updateUser(sess, u); err != nil {
530530
return fmt.Errorf("updateUser: %v", err)
531531
}

0 commit comments

Comments
 (0)