5
5
package migrations
6
6
7
7
import (
8
+ "crypto/md5"
8
9
"fmt"
9
10
"io"
10
11
"os"
11
12
"path/filepath"
12
- "strconv"
13
- "strings"
14
13
15
14
"code.gitea.io/gitea/modules/setting"
16
15
@@ -36,37 +35,35 @@ func renameExistingUserAvatarName(x *xorm.Engine) error {
36
35
37
36
deleteList := make ([]string , 0 , len (users ))
38
37
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 ))))
42
40
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
+ }
52
44
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 ()
58
50
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 ()
62
56
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
+ }
67
60
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
69
64
}
65
+
66
+ deleteList = append (deleteList , filepath .Join (setting .AvatarUploadPath , oldAvatar ))
70
67
}
71
68
for _ , file := range deleteList {
72
69
if err := os .Remove (file ); err != nil {
0 commit comments