mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 00:49:03 +00:00
Service layer to return nil query results if discard data is true (#15913)
This commit is contained in:
parent
d690867a6a
commit
ca948da440
2 changed files with 35 additions and 0 deletions
|
|
@ -152,6 +152,10 @@ func (svc *Service) GetQueryReportResults(ctx context.Context, id uint) ([]fleet
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if query.DiscardData {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
vc, ok := viewer.FromContext(ctx)
|
||||
if !ok {
|
||||
return nil, fleet.ErrNoContext
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package service
|
|||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/fleetdm/fleet/v4/server/contexts/viewer"
|
||||
"github.com/fleetdm/fleet/v4/server/fleet"
|
||||
|
|
@ -683,3 +685,32 @@ func TestQueryReportIsClipped(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.True(t, isClipped)
|
||||
}
|
||||
|
||||
func TestQueryReportReturnsNilIfDiscardDataIsTrue(t *testing.T) {
|
||||
ds := new(mock.Store)
|
||||
svc, ctx := newTestService(t, ds, nil, nil)
|
||||
viewerCtx := viewer.NewContext(ctx, viewer.Viewer{User: &fleet.User{
|
||||
ID: 1,
|
||||
GlobalRole: ptr.String(fleet.RoleAdmin),
|
||||
}})
|
||||
|
||||
ds.QueryFunc = func(ctx context.Context, queryID uint) (*fleet.Query, error) {
|
||||
return &fleet.Query{
|
||||
DiscardData: true,
|
||||
}, nil
|
||||
}
|
||||
ds.QueryResultRowsFunc = func(ctx context.Context, queryID uint, opts fleet.TeamFilter) ([]*fleet.ScheduledQueryResultRow, error) {
|
||||
return []*fleet.ScheduledQueryResultRow{
|
||||
{
|
||||
QueryID: 1,
|
||||
HostID: 1,
|
||||
Data: ptr.RawMessage(json.RawMessage(`{"foo": "bar"}`)),
|
||||
LastFetched: time.Now(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
results, err := svc.GetQueryReportResults(viewerCtx, 1)
|
||||
require.NoError(t, err)
|
||||
require.Nil(t, results)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue