@@ -296,6 +296,9 @@ func (u *User) GenerateRandomAvatar() error {
296
296
if err != nil {
297
297
return fmt .Errorf ("RandomImage: %v" , err )
298
298
}
299
+ // NOTICE for random avatar, it still uses id as avatar name, but custom avatar use md5
300
+ // since random image is not a user's photo, there is no security for enumable
301
+ u .Avatar = fmt .Sprintf ("%d" , u .ID )
299
302
if err = os .MkdirAll (filepath .Dir (u .CustomAvatarPath ()), os .ModePerm ); err != nil {
300
303
return fmt .Errorf ("MkdirAll: %v" , err )
301
304
}
@@ -451,13 +454,15 @@ func (u *User) UploadAvatar(data []byte) error {
451
454
// DeleteAvatar deletes the user's custom avatar.
452
455
func (u * User ) DeleteAvatar () error {
453
456
log .Trace ("DeleteAvatar[%d]: %s" , u .ID , u .CustomAvatarPath ())
454
-
455
- if err := os .Remove (u .CustomAvatarPath ()); err != nil {
456
- return fmt .Errorf ("Failed to remove %s: %v" , u .CustomAvatarPath (), err )
457
+ if len (u .Avatar ) > 0 {
458
+ if err := os .Remove (u .CustomAvatarPath ()); err != nil {
459
+ return fmt .Errorf ("Failed to remove %s: %v" , u .CustomAvatarPath (), err )
460
+ }
457
461
}
458
462
459
463
u .UseCustomAvatar = false
460
- if err := UpdateUser (u ); err != nil {
464
+ u .Avatar = ""
465
+ if _ , err := x .Id (u .ID ).Cols ("avatar, use_custom_avatar" ).Update (u ); err != nil {
461
466
return fmt .Errorf ("UpdateUser: %v" , err )
462
467
}
463
468
return nil
@@ -994,10 +999,12 @@ func deleteUser(e *xorm.Session, u *User) error {
994
999
return fmt .Errorf ("Failed to RemoveAll %s: %v" , path , err )
995
1000
}
996
1001
997
- avatarPath := u .CustomAvatarPath ()
998
- if com .IsExist (avatarPath ) {
999
- if err := os .Remove (avatarPath ); err != nil {
1000
- return fmt .Errorf ("Failed to remove %s: %v" , avatarPath , err )
1002
+ if len (u .Avatar ) > 0 {
1003
+ avatarPath := u .CustomAvatarPath ()
1004
+ if com .IsExist (avatarPath ) {
1005
+ if err := os .Remove (avatarPath ); err != nil {
1006
+ return fmt .Errorf ("Failed to remove %s: %v" , avatarPath , err )
1007
+ }
1001
1008
}
1002
1009
}
1003
1010
0 commit comments