From 82fe7c0035f3b746a1243ec9a7c9320e6adbcaa0 Mon Sep 17 00:00:00 2001 From: Zach Wasserman Date: Thu, 20 May 2021 10:28:55 -0700 Subject: [PATCH] Fix setting observer_can_run in query API (#823) Previous work in #777 added the datastore and model layers, but didn't handle setting this value in the service and transport. Fixes #822 --- server/kolide/queries.go | 7 ++++--- server/service/service_queries.go | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/server/kolide/queries.go b/server/kolide/queries.go index dff3b3b1c1..9b2fc957f5 100644 --- a/server/kolide/queries.go +++ b/server/kolide/queries.go @@ -61,9 +61,10 @@ type QueryService interface { } type QueryPayload struct { - Name *string - Description *string - Query *string + Name *string + Description *string + Query *string + ObserverCanRun *bool `json:"observer_can_run"` } type Query struct { diff --git a/server/service/service_queries.go b/server/service/service_queries.go index 98caf3bfc8..8754407548 100644 --- a/server/service/service_queries.go +++ b/server/service/service_queries.go @@ -89,6 +89,10 @@ func (svc service) NewQuery(ctx context.Context, p kolide.QueryPayload) (*kolide query.Query = *p.Query } + if p.ObserverCanRun != nil { + query.ObserverCanRun = *p.ObserverCanRun + } + vc, ok := viewer.FromContext(ctx) if ok { query.AuthorID = uintPtr(vc.UserID()) @@ -125,6 +129,10 @@ func (svc service) ModifyQuery(ctx context.Context, id uint, p kolide.QueryPaylo query.Query = *p.Query } + if p.ObserverCanRun != nil { + query.ObserverCanRun = *p.ObserverCanRun + } + if err := query.ValidateSQL(); err != nil { return nil, err }