|
|
|
@ -4,6 +4,7 @@ |
|
|
|
|
package sqlstore |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"context" |
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
. "github.com/smartystreets/goconvey/convey" |
|
|
|
@ -32,7 +33,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder.Id) |
|
|
|
@ -55,7 +56,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(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 1) |
|
|
|
@ -74,7 +75,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder.Id) |
|
|
|
@ -93,7 +94,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder.Id) |
|
|
|
@ -115,7 +116,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(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 1) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, dashInRoot.Id) |
|
|
|
@ -129,7 +130,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
|
|
|
|
|
Convey("should be able to search for child dashboard but not folder", func() { |
|
|
|
|
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(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, childDash.Id) |
|
|
|
@ -148,7 +149,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder.Id, dashInRoot.Id, childDash.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 3) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder.Id) |
|
|
|
@ -178,7 +179,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
}, |
|
|
|
|
OrgId: 1, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 4) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder1.Id) |
|
|
|
@ -204,7 +205,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder1.Id, childDash1.Id, childDash2.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 1) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, dashInRoot.Id) |
|
|
|
@ -219,7 +220,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder2.Id, childDash1.Id, childDash2.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 4) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder2.Id) |
|
|
|
@ -243,7 +244,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgId: 1, |
|
|
|
|
DashboardIds: []int64{folder2.Id, childDash1.Id, childDash2.Id, dashInRoot.Id}, |
|
|
|
|
} |
|
|
|
|
err := SearchDashboards(query) |
|
|
|
|
err := SearchDashboards(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(len(query.Result), ShouldEqual, 4) |
|
|
|
|
So(query.Result[0].ID, ShouldEqual, folder2.Id) |
|
|
|
@ -273,7 +274,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
Type: "dash-folder", |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := SearchDashboards(&query) |
|
|
|
|
err := SearchDashboards(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
@ -289,7 +290,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgRole: models.ROLE_ADMIN, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := GetDashboardPermissionsForUser(&query) |
|
|
|
|
err := GetDashboardPermissionsForUser(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
@ -303,7 +304,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasEditPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: adminUser.Id, OrgId: 1, OrgRole: models.ROLE_ADMIN}, |
|
|
|
|
} |
|
|
|
|
err := HasEditPermissionInFolders(query) |
|
|
|
|
err := HasEditPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeTrue) |
|
|
|
|
}) |
|
|
|
@ -312,7 +313,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasAdminPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: adminUser.Id, OrgId: 1, OrgRole: models.ROLE_ADMIN}, |
|
|
|
|
} |
|
|
|
|
err := HasAdminPermissionInFolders(query) |
|
|
|
|
err := HasAdminPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeTrue) |
|
|
|
|
}) |
|
|
|
@ -326,7 +327,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Convey("Should have write access to all dashboard folders with default ACL", func() { |
|
|
|
|
err := SearchDashboards(&query) |
|
|
|
|
err := SearchDashboards(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
@ -342,7 +343,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgRole: models.ROLE_EDITOR, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := GetDashboardPermissionsForUser(&query) |
|
|
|
|
err := GetDashboardPermissionsForUser(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
@ -358,7 +359,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
}) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
err = SearchDashboards(&query) |
|
|
|
|
err = SearchDashboards(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 1) |
|
|
|
@ -369,7 +370,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasEditPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: editorUser.Id, OrgId: 1, OrgRole: models.ROLE_EDITOR}, |
|
|
|
|
} |
|
|
|
|
err := HasEditPermissionInFolders(query) |
|
|
|
|
err := HasEditPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeTrue) |
|
|
|
|
}) |
|
|
|
@ -378,7 +379,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasAdminPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: adminUser.Id, OrgId: 1, OrgRole: models.ROLE_EDITOR}, |
|
|
|
|
} |
|
|
|
|
err := HasAdminPermissionInFolders(query) |
|
|
|
|
err := HasAdminPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeFalse) |
|
|
|
|
}) |
|
|
|
@ -392,7 +393,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Convey("Should have no write access to any dashboard folders with default ACL", func() { |
|
|
|
|
err := SearchDashboards(&query) |
|
|
|
|
err := SearchDashboards(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 0) |
|
|
|
@ -406,7 +407,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
OrgRole: models.ROLE_VIEWER, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := GetDashboardPermissionsForUser(&query) |
|
|
|
|
err := GetDashboardPermissionsForUser(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 2) |
|
|
|
@ -422,7 +423,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
}) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
err = SearchDashboards(&query) |
|
|
|
|
err = SearchDashboards(context.Background(), &query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
So(len(query.Result), ShouldEqual, 1) |
|
|
|
@ -433,7 +434,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasEditPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: viewerUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, |
|
|
|
|
} |
|
|
|
|
err := HasEditPermissionInFolders(query) |
|
|
|
|
err := HasEditPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeFalse) |
|
|
|
|
}) |
|
|
|
@ -442,7 +443,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasAdminPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: adminUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, |
|
|
|
|
} |
|
|
|
|
err := HasAdminPermissionInFolders(query) |
|
|
|
|
err := HasAdminPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeFalse) |
|
|
|
|
}) |
|
|
|
@ -457,7 +458,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasEditPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: viewerUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, |
|
|
|
|
} |
|
|
|
|
err := HasEditPermissionInFolders(query) |
|
|
|
|
err := HasEditPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeTrue) |
|
|
|
|
}) |
|
|
|
@ -473,7 +474,7 @@ func TestDashboardFolderDataAccess(t *testing.T) { |
|
|
|
|
query := &models.HasEditPermissionInFoldersQuery{ |
|
|
|
|
SignedInUser: &models.SignedInUser{UserId: viewerUser.Id, OrgId: 1, OrgRole: models.ROLE_VIEWER}, |
|
|
|
|
} |
|
|
|
|
err := HasEditPermissionInFolders(query) |
|
|
|
|
err := HasEditPermissionInFolders(context.Background(), query) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
So(query.Result, ShouldBeTrue) |
|
|
|
|
}) |
|
|
|
|