diff --git a/models/file.go b/models/file.go index 004d157..171c94c 100644 --- a/models/file.go +++ b/models/file.go @@ -221,14 +221,17 @@ func DeleteFiles(files []*File, uid uint) error { for _, file := range files { if file.UserID != uid { tx.Rollback() - return errors.New("User id not consistent") + return errors.New("user id not consistent") } - result := tx.Unscoped().Delete(file) - if result.RowsAffected != 0 { - size += file.Size + result := tx.Unscoped().Where("size = ?", file.Size).Delete(file) + if result.RowsAffected == 0 { + tx.Rollback() + return errors.New("file size is dirty") } + size += file.Size + if result.Error != nil { tx.Rollback() return result.Error