diff --git a/internal/api/audit.go b/internal/api/audit.go index 5925ddd..4f96531 100644 --- a/internal/api/audit.go +++ b/internal/api/audit.go @@ -53,6 +53,7 @@ func (h *AuditHandler) List(c *gin.Context) { Action: c.Query("action"), ResourceType: c.Query("resource_type"), ResourceID: c.Query("resource_id"), + Result: c.Query("result"), Since: since, Until: until, Page: page, diff --git a/internal/service/audit.go b/internal/service/audit.go index 4b24ab0..83bd1f4 100644 --- a/internal/service/audit.go +++ b/internal/service/audit.go @@ -53,6 +53,7 @@ type AuditFilter struct { Action string // 动作精确匹配 ResourceType string // 资源类型(user / ssh_key / approval ...) ResourceID string // 资源 ID + Result string // 结果(success / failed) Since *time.Time // 起始时间(含) Until *time.Time // 结束时间(含) Page int @@ -74,6 +75,9 @@ func (s *AuditService) Query(ctx context.Context, f AuditFilter) ([]model.AuditL if f.ResourceID != "" { q = q.Where("resource_id = ?", f.ResourceID) } + if f.Result != "" { + q = q.Where("result = ?", f.Result) + } if f.Since != nil { q = q.Where("created_at >= ?", *f.Since) }