Chore: Propagate context for search (#41010)

Propagate context for search.Query, FindPersistedDashboardsQuery, 
GetUserStarsQuery. Followup on context.TODO added by #40810.

Ref #36734
This commit is contained in:
Marcus Efraimsson
2021-10-28 11:29:07 +02:00
committed by GitHub
parent 877c726246
commit 2d2f7afbde
10 changed files with 53 additions and 48 deletions
+9 -5
View File
@@ -29,7 +29,6 @@ func init() {
bus.AddHandlerCtx("sql", GetDashboard)
bus.AddHandlerCtx("sql", GetDashboards)
bus.AddHandlerCtx("sql", DeleteDashboard)
bus.AddHandlerCtx("sql", SearchDashboards)
bus.AddHandlerCtx("sql", GetDashboardTags)
bus.AddHandlerCtx("sql", GetDashboardSlugById)
bus.AddHandlerCtx("sql", GetDashboardsByPluginId)
@@ -43,6 +42,7 @@ func init() {
func (ss *SQLStore) addDashboardQueryAndCommandHandlers() {
bus.AddHandlerCtx("sql", ss.GetDashboardUIDById)
bus.AddHandlerCtx("sql", ss.SearchDashboards)
}
var generateNewUid func() string = util.GenerateShortUID
@@ -267,7 +267,7 @@ type DashboardSearchProjection struct {
SortMeta int64
}
func findDashboards(query *search.FindPersistedDashboardsQuery) ([]DashboardSearchProjection, error) {
func (ss *SQLStore) findDashboards(ctx context.Context, query *search.FindPersistedDashboardsQuery) ([]DashboardSearchProjection, error) {
filters := []interface{}{
permissions.DashboardPermissionFilter{
OrgRole: query.SignedInUser.OrgRole,
@@ -326,7 +326,11 @@ func findDashboards(query *search.FindPersistedDashboardsQuery) ([]DashboardSear
}
sql, params := sb.ToSQL(limit, page)
err := x.SQL(sql, params...).Find(&res)
err := ss.WithDbSession(ctx, func(dbSession *DBSession) error {
return dbSession.SQL(sql, params...).Find(&res)
})
if err != nil {
return nil, err
}
@@ -334,8 +338,8 @@ func findDashboards(query *search.FindPersistedDashboardsQuery) ([]DashboardSear
return res, nil
}
func SearchDashboards(ctx context.Context, query *search.FindPersistedDashboardsQuery) error {
res, err := findDashboards(query)
func (ss *SQLStore) SearchDashboards(ctx context.Context, query *search.FindPersistedDashboardsQuery) error {
res, err := ss.findDashboards(ctx, query)
if err != nil {
return err
}
+16 -16
View File
@@ -38,7 +38,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
require.Equal(t, query.Result[0].ID, folder.Id)
@@ -61,7 +61,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{UserId: currentUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER},
OrgId: 1, DashboardIds: []int64{folder.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -80,7 +80,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
require.Equal(t, query.Result[0].ID, folder.Id)
@@ -99,7 +99,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
require.Equal(t, query.Result[0].ID, folder.Id)
@@ -121,7 +121,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
query := &search.FindPersistedDashboardsQuery{
SignedInUser: &models.SignedInUser{UserId: currentUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, OrgId: 1, DashboardIds: []int64{folder.Id, childDash.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
require.Equal(t, query.Result[0].ID, dashInRoot.Id)
@@ -135,7 +135,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
t.Run("should be able to search for child dashboard but not folder", func(t *testing.T) {
query := &search.FindPersistedDashboardsQuery{SignedInUser: &models.SignedInUser{UserId: currentUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, OrgId: 1, DashboardIds: []int64{folder.Id, childDash.Id, dashInRoot.Id}}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
require.Equal(t, query.Result[0].ID, childDash.Id)
@@ -154,7 +154,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder.Id, dashInRoot.Id, childDash.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 3)
require.Equal(t, query.Result[0].ID, folder.Id)
@@ -192,7 +192,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
},
OrgId: 1,
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 4)
require.Equal(t, query.Result[0].ID, folder1.Id)
@@ -218,7 +218,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder1.Id, childDash1.Id, childDash2.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
require.Equal(t, query.Result[0].ID, dashInRoot.Id)
@@ -234,7 +234,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder2.Id, childDash1.Id, childDash2.Id, dashInRoot.Id},
}
err := SearchDashboards(context.Background(), query)
err := sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 4)
require.Equal(t, query.Result[0].ID, folder2.Id)
@@ -258,7 +258,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
OrgId: 1,
DashboardIds: []int64{folder2.Id, childDash1.Id, childDash2.Id, dashInRoot.Id},
}
err = SearchDashboards(context.Background(), query)
err = sqlStore.SearchDashboards(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 4)
require.Equal(t, query.Result[0].ID, folder2.Id)
@@ -296,7 +296,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
Type: "dash-folder",
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
@@ -349,7 +349,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
}
t.Run("Should have write access to all dashboard folders with default ACL", func(t *testing.T) {
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
@@ -381,7 +381,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
})
require.NoError(t, err)
err = SearchDashboards(context.Background(), &query)
err = sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -415,7 +415,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
}
t.Run("Should have no write access to any dashboard folders with default ACL", func(t *testing.T) {
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 0)
@@ -447,7 +447,7 @@ func TestDashboardFolderDataAccess(t *testing.T) {
})
require.NoError(t, err)
err = SearchDashboards(context.Background(), &query)
err = sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
+9 -9
View File
@@ -236,7 +236,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{},
}
err = SearchDashboards(context.Background(), &query)
err = sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 0)
@@ -305,7 +305,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -323,7 +323,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -339,7 +339,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -355,7 +355,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 3)
@@ -370,7 +370,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
@@ -390,7 +390,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{OrgId: 1, OrgRole: models.ROLE_EDITOR},
}
err := SearchDashboards(context.Background(), &query)
err := sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 2)
@@ -421,7 +421,7 @@ func TestDashboardDataAccess(t *testing.T) {
SignedInUser: &models.SignedInUser{UserId: 10, OrgId: 1, OrgRole: models.ROLE_EDITOR},
IsStarred: true,
}
err = SearchDashboards(context.Background(), &query)
err = sqlStore.SearchDashboards(context.Background(), &query)
require.NoError(t, err)
require.Equal(t, len(query.Result), 1)
@@ -463,7 +463,7 @@ func TestDashboard_SortingOptions(t *testing.T) {
searchstore.TitleSorter{Descending: true},
},
}
dashboards, err := findDashboards(q)
dashboards, err := sqlStore.findDashboards(context.Background(), q)
require.NoError(t, err)
require.Len(t, dashboards, 2)
assert.Equal(t, dashA.Id, dashboards[0].ID)