This commit is contained in:
Lizandro Guarnizo
2026-05-16 14:37:57 -05:00
parent edc0e7f791
commit fef471ff6c
3 changed files with 64 additions and 0 deletions
+10
View File
@@ -67,3 +67,13 @@ func GetTicketsByPortalUser(portalUserID uint) ([]ProyectoTicket, error) {
Preload("Mensajes").Order("created_at DESC").Find(&items).Error
return items, err
}
func GetAllTickets(estado string) ([]ProyectoTicket, error) {
var items []ProyectoTicket
db := app.Http.Database.DB.Preload("Mensajes").Order("created_at DESC")
if estado != "" && estado != "todos" {
db = db.Where("estado = ?", estado)
}
err := db.Find(&items).Error
return items, err
}
+18
View File
@@ -459,6 +459,24 @@ func AdminResponderTicket(c *fiber.Ctx) error {
return c.Status(201).JSON(msg)
}
// ─── Tickets global (admin) ──────────────────────────────────────────────────
func TicketsAdminIndex(c *fiber.Ctx) error {
return c.Render("tickets_admin", fiber.Map{
"user": c.Locals("user"),
"modules": c.Locals("userModules"),
}, "layouts/main")
}
func GetAllTicketsAdmin(c *fiber.Ctx) error {
estado := c.Query("estado", "todos")
items, err := models.GetAllTickets(estado)
if err != nil {
return c.Status(500).JSON(fiber.Map{"error": err.Error()})
}
return c.JSON(items)
}
// ─── helpers ──────────────────────────────────────────────────────────────────
func slugify(s string) string {
+36
View File
@@ -263,6 +263,42 @@ func UserRoutes(app fiber.Router) {
protected.Post("/facturas/:id/upload-pdf", controllers.UploadFacturaPDF)
protected.Get("/facturas/:id/download", controllers.DownloadFacturaPDF)
// ─── USITE Shield ─────────────────────────────────────────────────────────
protected.Get("/shield", middlewares.MenuMiddleware, controllers.ShieldIndex)
protected.Get("/loadshield", controllers.LoadShieldConfig)
protected.Post("/saveshield", controllers.SaveShieldConfig)
protected.Get("/shield/health", controllers.ShieldHealth)
protected.Get("/shield/extension-version", controllers.ShieldExtensionVersion)
protected.Get("/shield/logs", controllers.ShieldLogs)
protected.Get("/shield/logs/stats", controllers.ShieldLogStats)
protected.Get("/shield/review-requests", controllers.ShieldReviewRequests)
protected.Put("/shield/review-requests/:id/approve", controllers.ShieldApproveRequest)
protected.Put("/shield/review-requests/:id/reject", controllers.ShieldRejectRequest)
protected.Get("/shield/whitelist", controllers.ShieldWhitelist)
protected.Post("/shield/whitelist", controllers.ShieldAddWhitelist)
protected.Delete("/shield/whitelist/:domain", controllers.ShieldDeleteWhitelist)
protected.Get("/shield/blacklist", controllers.ShieldBlacklist)
protected.Post("/shield/blacklist", controllers.ShieldAddBlacklist)
protected.Delete("/shield/blacklist/:domain", controllers.ShieldDeleteBlacklist)
protected.Get("/shield/reputation/:domain", controllers.ShieldReputation)
protected.Put("/shield/reputation/:domain/score", controllers.ShieldAdjustScore)
// Tickets global (todos los proyectos)
protected.Get("/tickets", middlewares.MenuMiddleware, controllers.TicketsAdminIndex)
protected.Get("/tickets/data", controllers.GetAllTicketsAdmin)
protected.Put("/tickets/:ticketID/estado", controllers.UpdateTicketEstadoAdmin)
protected.Post("/tickets/:ticketID/mensaje", controllers.AdminResponderTicket)
// Configuración de notificaciones
protected.Get("/notif-config", middlewares.MenuMiddleware, controllers.NotifConfigIndex)
protected.Get("/notif-config/data", controllers.GetNotifConfigs)
protected.Post("/notif-config", controllers.SaveNotifConfig)
// Notificaciones in-app del admin (bell)
protected.Get("/mis-notifs", controllers.GetMisNotifs)
protected.Put("/mis-notifs/:id/leida", controllers.MarcarNotifLeida)
protected.Post("/mis-notifs/marcar-todas", controllers.MarcarTodasLeidas)
// ─── Planes dLocal (gestión desde panel protegido) ────────────────────────
protected.Get("/dlocal/planes", apiControllers.SeePlanes)
protected.Post("/dlocal/planes", apiControllers.CreatePlan)