Fix the total size logic check.

This commit is contained in:
zicla 2019-06-06 02:32:46 +08:00
parent ddfeb37114
commit fe133d3ec2

View File

@ -283,13 +283,6 @@ func (this *MatterService) Upload(request *http.Request, file io.Reader, user *U
panic(result.BadRequestI18n(request, i18n.MatterNameLengthExceedLimit, len(filename), MATTER_NAME_MAX_LENGTH)) panic(result.BadRequestI18n(request, i18n.MatterNameLengthExceedLimit, len(filename), MATTER_NAME_MAX_LENGTH))
} }
//check the total size limit.
if user.TotalSizeLimit >= 0 {
if user.TotalSize > user.TotalSizeLimit {
panic(result.BadRequestI18n(request, i18n.MatterSizeExceedTotalLimit, util.HumanFileSize(user.TotalSize), util.HumanFileSize(user.TotalSizeLimit)))
}
}
dirAbsolutePath := dirMatter.AbsolutePath() dirAbsolutePath := dirMatter.AbsolutePath()
dirRelativePath := dirMatter.Path dirRelativePath := dirMatter.Path
@ -335,6 +328,18 @@ func (this *MatterService) Upload(request *http.Request, file io.Reader, user *U
} }
} }
//check total size.
if user.TotalSizeLimit >= 0 {
if user.TotalSize+fileSize > user.TotalSizeLimit {
//delete the file on disk.
err = os.Remove(fileAbsolutePath)
this.PanicError(err)
panic(result.BadRequestI18n(request, i18n.MatterSizeExceedTotalLimit, util.HumanFileSize(user.TotalSize), util.HumanFileSize(user.TotalSizeLimit)))
}
}
//write to db. //write to db.
matter := &Matter{ matter := &Matter{
Puuid: dirMatter.Uuid, Puuid: dirMatter.Uuid,