change how plugin preloading works and change gloomi plugin uploading

This commit is contained in:
Zoe
2025-05-14 20:06:39 -05:00
parent ea40eb98e0
commit c31f070b46
4 changed files with 89 additions and 28 deletions

View File

@@ -52,6 +52,7 @@ func (p *GLoomI) RegisterRoutes(router fiber.Router) {
})
type UploadRequest struct {
Name string `form:"name"`
Domains string `form:"domains"`
}
@@ -65,6 +66,17 @@ func (p *GLoomI) RegisterRoutes(router fiber.Router) {
return c.Status(fiber.StatusBadRequest).SendString("No domains provided")
}
if pluginUpload.Name == "" {
return c.Status(fiber.StatusBadRequest).SendString("No name provided")
}
// check if string is alphanumeric
for _, char := range pluginUpload.Name {
if !((char >= 'a' && char <= 'z') || (char >= 'A' && char <= 'Z') || (char >= '0' && char <= '9') || char == '-' || char == '_') {
return c.Status(fiber.StatusBadRequest).SendString("Invalid name provided")
}
}
domains := make([]string, 0)
for _, domain := range strings.Split(pluginUpload.Domains, ",") {
domains = append(domains, strings.TrimSpace(domain))
@@ -86,7 +98,7 @@ func (p *GLoomI) RegisterRoutes(router fiber.Router) {
Name string `json:"name"`
Data []byte `json:"data"`
}
pluginUploadStruct.Name = pluginFile.Filename
pluginUploadStruct.Name = pluginUpload.Name
pluginUploadStruct.Domains = domains
pluginUploadStruct.Data, err = io.ReadAll(pluginData)
if err != nil {