package routes import ( "git.matterlinux.xyz/matter/security/lib" "git.matterlinux.xyz/matter/security/log" "github.com/gofiber/fiber/v2" ) func POST_New(c *fiber.Ctx) error { body := struct { Desc string `form:"desc"` Source string `form:"source"` Severity string `form:"severity"` Package string `form:"package"` Versions string `form:"versions"` }{} err := c.BodyParser(&body) if err != nil { return lib.RenderError(c, 400) } user, err := lib.GetUser(c) if err != nil { log.Error("Failed to get the user: %s", err.Error()) return lib.RenderError(c, 500) } if !lib.ValidSeverity(body.Severity) { return lib.RenderError(c, 400) } v := lib.Vuln{ ID: lib.GetID(), Desc: body.Desc, Source: body.Source, Severity: body.Severity, Package: body.Package, Versions: body.Versions, Status: "Waiting for review", Message: "This vulnerability is waiting for a review from the maintainers", Author: user.Username, Date: lib.GetFTime(), Updated: lib.GetFTime(), } err = lib.AddVuln(v) if err != nil { log.Error("Failed to add vuln: %s", err.Error()) return lib.RenderError(c, 500) } return c.Redirect("/manage") }