diff --git a/server/contexts/viewer/viewer.go b/server/contexts/viewer/viewer.go index 3de527ca68..3654986cac 100644 --- a/server/contexts/viewer/viewer.go +++ b/server/contexts/viewer/viewer.go @@ -56,6 +56,15 @@ func (v Viewer) Username() string { return "none" } +// FullName is a helper that enables quick access to the full name of the +// current user. +func (v Viewer) FullName() string { + if v.User != nil { + return v.User.Name + } + return "none" +} + // SessionID returns the current user's session ID func (v Viewer) SessionID() uint { if v.Session != nil { diff --git a/server/datastore/inmem/queries.go b/server/datastore/inmem/queries.go index c0cdf3d72f..086fa396c8 100644 --- a/server/datastore/inmem/queries.go +++ b/server/datastore/inmem/queries.go @@ -20,6 +20,7 @@ func (d *Datastore) NewQuery(query *kolide.Query) (*kolide.Query, error) { } newQuery.ID = d.nextID(newQuery) + newQuery.Packs = []kolide.Pack{} d.queries[newQuery.ID] = &newQuery return &newQuery, nil diff --git a/server/datastore/mysql/queries.go b/server/datastore/mysql/queries.go index 4a630cc62c..f6367c8061 100644 --- a/server/datastore/mysql/queries.go +++ b/server/datastore/mysql/queries.go @@ -25,6 +25,7 @@ func (d *Datastore) NewQuery(query *kolide.Query) (*kolide.Query, error) { id, _ := result.LastInsertId() query.ID = uint(id) + query.Packs = []kolide.Pack{} return query, nil } diff --git a/server/service/service_queries.go b/server/service/service_queries.go index da1592af0e..c990b42219 100644 --- a/server/service/service_queries.go +++ b/server/service/service_queries.go @@ -32,12 +32,14 @@ func (svc service) NewQuery(ctx context.Context, p kolide.QueryPayload) (*kolide vc, ok := viewer.FromContext(ctx) if ok { query.AuthorID = vc.UserID() + query.AuthorName = vc.FullName() } query, err := svc.ds.NewQuery(query) if err != nil { return nil, err } + return query, nil } diff --git a/server/service/service_queries_test.go b/server/service/service_queries_test.go index 0b2c74c06d..69077d34fd 100644 --- a/server/service/service_queries_test.go +++ b/server/service/service_queries_test.go @@ -57,7 +57,6 @@ func TestGetQuery(t *testing.T) { queryVerify, err := svc.GetQuery(ctx, query.ID) assert.Nil(t, err) - assert.Equal(t, query.ID, queryVerify.ID) } @@ -77,12 +76,13 @@ func TestNewQuery(t *testing.T) { name := "foo" query := "select * from time;" - _, err = svc.NewQuery(ctx, kolide.QueryPayload{ + q, err := svc.NewQuery(ctx, kolide.QueryPayload{ Name: &name, Query: &query, }) - assert.Nil(t, err) + assert.Equal(t, "Test Name admin1", q.AuthorName) + assert.Equal(t, []kolide.Pack{}, q.Packs) queries, err := ds.ListQueries(kolide.ListOptions{}) assert.Nil(t, err) @@ -141,5 +141,4 @@ func TestDeleteQuery(t *testing.T) { queries, err := ds.ListQueries(kolide.ListOptions{}) assert.Nil(t, err) assert.Len(t, queries, 0) - }