mirror of
https://github.com/Forceu/Gokapi.git
synced 2026-04-30 03:20:28 -05:00
Check for max file count and expiry
This commit is contained in:
@@ -59,6 +59,11 @@ func (f *FileRequest) GetFilesAsString() string {
|
||||
func (f *FileRequest) IsUnlimitedSize() bool {
|
||||
return f.MaxSize == 0
|
||||
}
|
||||
|
||||
func (f *FileRequest) IsUnlimitedFiles() bool {
|
||||
return f.MaxFiles == 0
|
||||
}
|
||||
|
||||
func (f *FileRequest) IsUnlimitedTime() bool {
|
||||
return f.Expiry == 0
|
||||
}
|
||||
|
||||
@@ -900,6 +900,14 @@ func showPublicUpload(w http.ResponseWriter, r *http.Request) {
|
||||
redirect(w, "error?fr")
|
||||
return
|
||||
}
|
||||
if !request.IsUnlimitedTime() && request.Expiry < time.Now().Unix() {
|
||||
redirect(w, "error?fr")
|
||||
return
|
||||
}
|
||||
if !request.IsUnlimitedFiles() && request.UploadedFiles >= request.MaxFiles {
|
||||
redirect(w, "error?fr")
|
||||
return
|
||||
}
|
||||
apiKey := queryUrl(w, r, "key", "error?fr")
|
||||
if subtle.ConstantTimeCompare([]byte(request.ApiKey), []byte(apiKey)) != 1 {
|
||||
redirect(w, "error?fr")
|
||||
|
||||
@@ -371,6 +371,12 @@ func checkFileRequestAndApiKey(fileRequestId, apiKey string) (models.FileRequest
|
||||
if fileRequest.ApiKey != apiKey {
|
||||
return models.FileRequest{}, false, http.StatusUnauthorized, "Invalid API key"
|
||||
}
|
||||
if !fileRequest.IsUnlimitedTime() && fileRequest.Expiry < time.Now().Unix() {
|
||||
return models.FileRequest{}, false, http.StatusUnauthorized, "Filerequest has expired"
|
||||
}
|
||||
if !fileRequest.IsUnlimitedFiles() && fileRequest.UploadedFiles >= fileRequest.MaxFiles {
|
||||
return models.FileRequest{}, false, http.StatusUnauthorized, "Max file count has already been reached for this file request"
|
||||
}
|
||||
return fileRequest, true, 0, ""
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user