diff --git a/admin_users.go b/admin_users.go index cedae65..7a04caf 100644 --- a/admin_users.go +++ b/admin_users.go @@ -82,6 +82,19 @@ func (a *App) adminCreateUser(c *gin.Context) { c.JSON(201, u) } +func (a *App) adminAudit(c *gin.Context) { + var logs []AuditLog + q := a.db.Order("id desc").Limit(200) + if action := c.Query("action"); action != "" { + q = q.Where("action = ?", action) + } + if err := q.Find(&logs).Error; err != nil { + c.JSON(500, gin.H{"error": err.Error()}) + return + } + c.JSON(200, gin.H{"data": logs}) +} + func (a *App) adminUpdateUser(c *gin.Context) { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { diff --git a/main.go b/main.go index 0974bce..31c6845 100644 --- a/main.go +++ b/main.go @@ -50,6 +50,7 @@ func main() { auth.DELETE("/tasks/:id", a.requirePermission(PermDownload), a.deleteTask) admin := api.Group("/admin", a.requireAuth, a.requireAdmin) admin.GET("/users", a.adminListUsers) + admin.GET("/audit", a.adminAudit) admin.POST("/users", a.adminCreateUser) admin.PUT("/users/:id", a.adminUpdateUser) admin.GET("/redeem", a.adminListRedeemBatches)