| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package sqlstore
- import (
- "testing"
- . "github.com/smartystreets/goconvey/convey"
- m "github.com/grafana/grafana/pkg/models"
- )
- func TestDashboardAclDataAccess(t *testing.T) {
- Convey("Testing DB", t, func() {
- InitTestDB(t)
- Convey("Given a dashboard folder", func() {
- savedFolder := insertTestDashboard("1 test dash folder", 1, 0, true, "prod", "webapp")
- childDash := insertTestDashboard("2 test dash", 1, savedFolder.Id, false, "prod", "webapp")
- Convey("Should be able to add dashboard permission", func() {
- err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{
- OrgId: 1,
- UserId: 1,
- DashboardId: savedFolder.Id,
- PermissionType: m.PERMISSION_EDIT,
- })
- So(err, ShouldBeNil)
- q1 := &m.GetDashboardPermissionsQuery{DashboardId: savedFolder.Id}
- err = GetDashboardPermissions(q1)
- So(err, ShouldBeNil)
- So(q1.Result[0].DashboardId, ShouldEqual, savedFolder.Id)
- So(q1.Result[0].Permissions, ShouldEqual, m.PERMISSION_EDIT)
- So(q1.Result[0].UserId, ShouldEqual, 1)
- Convey("Should update hasAcl field to true for dashboard folder and its children", func() {
- q2 := &m.GetDashboardsQuery{DashboardIds: []int64{savedFolder.Id, childDash.Id}}
- err := GetDashboards(q2)
- So(err, ShouldBeNil)
- So(q2.Result[0].HasAcl, ShouldBeTrue)
- So(q2.Result[1].HasAcl, ShouldBeTrue)
- })
- Convey("Should be able to update an existing permission", func() {
- err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{
- OrgId: 1,
- UserId: 1,
- DashboardId: savedFolder.Id,
- PermissionType: m.PERMISSION_READ_ONLY_EDIT,
- })
- So(err, ShouldBeNil)
- q3 := &m.GetDashboardPermissionsQuery{DashboardId: savedFolder.Id}
- err = GetDashboardPermissions(q3)
- So(err, ShouldBeNil)
- So(q3.Result[0].DashboardId, ShouldEqual, savedFolder.Id)
- So(q3.Result[0].Permissions, ShouldEqual, m.PERMISSION_READ_ONLY_EDIT)
- So(q3.Result[0].UserId, ShouldEqual, 1)
- })
- })
- })
- })
- }
|