mirror of https://github.com/grafana/grafana.git
				
				
				
			refactoring renaming dashboard folder operations
This commit is contained in:
		
							parent
							
								
									34cf305d2c
								
							
						
					
					
						commit
						e0b9ba7554
					
				|  | @ -250,7 +250,7 @@ func (hs *HttpServer) registerRoutes() { | ||||||
| 
 | 
 | ||||||
| 			r.Group("/:id/acl", func() { | 			r.Group("/:id/acl", func() { | ||||||
| 				r.Get("/", wrap(GetDashboardAcl)) | 				r.Get("/", wrap(GetDashboardAcl)) | ||||||
| 				r.Post("/", quota("acl"), bind(m.AddOrUpdateDashboardPermissionCommand{}), wrap(PostDashboardAcl)) | 				r.Post("/", quota("acl"), bind(m.SetDashboardAclCommand{}), wrap(PostDashboardAcl)) | ||||||
| 				r.Delete("/user/:userId", wrap(DeleteDashboardAclByUser)) | 				r.Delete("/user/:userId", wrap(DeleteDashboardAclByUser)) | ||||||
| 				r.Delete("/user-group/:userGroupId", wrap(DeleteDashboardAclByUserGroup)) | 				r.Delete("/user-group/:userGroupId", wrap(DeleteDashboardAclByUserGroup)) | ||||||
| 			}, reqSignedIn) | 			}, reqSignedIn) | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ func GetDashboardAcl(c *middleware.Context) Response { | ||||||
| 	return Json(200, &query.Result) | 	return Json(200, &query.Result) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func PostDashboardAcl(c *middleware.Context, cmd m.AddOrUpdateDashboardPermissionCommand) Response { | func PostDashboardAcl(c *middleware.Context, cmd m.SetDashboardAclCommand) Response { | ||||||
| 	dashId := c.ParamsInt64(":id") | 	dashId := c.ParamsInt64(":id") | ||||||
| 
 | 
 | ||||||
| 	guardian := guardian.NewDashboardGuardian(dashId, c.OrgId, c.SignedInUser) | 	guardian := guardian.NewDashboardGuardian(dashId, c.OrgId, c.SignedInUser) | ||||||
|  | @ -61,7 +61,7 @@ func DeleteDashboardAclByUser(c *middleware.Context) Response { | ||||||
| 		return dashboardGuardianResponse(err) | 		return dashboardGuardianResponse(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	cmd := m.RemoveDashboardPermissionCommand{DashboardId: dashId, UserId: userId, OrgId: c.OrgId} | 	cmd := m.RemoveDashboardAclCommand{DashboardId: dashId, UserId: userId, OrgId: c.OrgId} | ||||||
| 
 | 
 | ||||||
| 	if err := bus.Dispatch(&cmd); err != nil { | 	if err := bus.Dispatch(&cmd); err != nil { | ||||||
| 		return ApiError(500, "Failed to delete permission for user", err) | 		return ApiError(500, "Failed to delete permission for user", err) | ||||||
|  | @ -79,7 +79,7 @@ func DeleteDashboardAclByUserGroup(c *middleware.Context) Response { | ||||||
| 		return dashboardGuardianResponse(err) | 		return dashboardGuardianResponse(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	cmd := m.RemoveDashboardPermissionCommand{DashboardId: dashId, UserGroupId: userGroupId, OrgId: c.OrgId} | 	cmd := m.RemoveDashboardAclCommand{DashboardId: dashId, UserGroupId: userGroupId, OrgId: c.OrgId} | ||||||
| 
 | 
 | ||||||
| 	if err := bus.Dispatch(&cmd); err != nil { | 	if err := bus.Dispatch(&cmd); err != nil { | ||||||
| 		return ApiError(500, "Failed to delete permission for user", err) | 		return ApiError(500, "Failed to delete permission for user", err) | ||||||
|  |  | ||||||
|  | @ -72,7 +72,7 @@ func TestDashboardAclApiEndpoint(t *testing.T) { | ||||||
| 			loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | 			loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | ||||||
| 				mockResult = append(mockResult, &models.DashboardAcl{Id: 1, OrgId: 1, DashboardId: 1, UserId: 1, Permissions: models.PERMISSION_EDIT}) | 				mockResult = append(mockResult, &models.DashboardAcl{Id: 1, OrgId: 1, DashboardId: 1, UserId: 1, Permissions: models.PERMISSION_EDIT}) | ||||||
| 
 | 
 | ||||||
| 				bus.AddHandler("test3", func(cmd *models.RemoveDashboardPermissionCommand) error { | 				bus.AddHandler("test3", func(cmd *models.RemoveDashboardAclCommand) error { | ||||||
| 					return nil | 					return nil | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
|  | @ -88,7 +88,7 @@ func TestDashboardAclApiEndpoint(t *testing.T) { | ||||||
| 				loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | 				loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | ||||||
| 					userGroupResp = append(userGroupResp, &models.UserGroup{Id: 1, OrgId: 1, Name: "UG1"}) | 					userGroupResp = append(userGroupResp, &models.UserGroup{Id: 1, OrgId: 1, Name: "UG1"}) | ||||||
| 
 | 
 | ||||||
| 					bus.AddHandler("test3", func(cmd *models.RemoveDashboardPermissionCommand) error { | 					bus.AddHandler("test3", func(cmd *models.RemoveDashboardAclCommand) error { | ||||||
| 						return nil | 						return nil | ||||||
| 					}) | 					}) | ||||||
| 
 | 
 | ||||||
|  | @ -115,7 +115,7 @@ func TestDashboardAclApiEndpoint(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 			loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | 			loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/dashboards/1/acl/user/1", "/api/dashboards/:id/acl/user/:userId", models.ROLE_EDITOR, func(sc *scenarioContext) { | ||||||
| 				mockResult = append(mockResult, &models.DashboardAcl{Id: 1, OrgId: 1, DashboardId: 1, UserId: 1, Permissions: models.PERMISSION_VIEW}) | 				mockResult = append(mockResult, &models.DashboardAcl{Id: 1, OrgId: 1, DashboardId: 1, UserId: 1, Permissions: models.PERMISSION_VIEW}) | ||||||
| 				bus.AddHandler("test3", func(cmd *models.RemoveDashboardPermissionCommand) error { | 				bus.AddHandler("test3", func(cmd *models.RemoveDashboardAclCommand) error { | ||||||
| 					return nil | 					return nil | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -62,17 +62,17 @@ type DashboardAclInfoDTO struct { | ||||||
| // COMMANDS
 | // COMMANDS
 | ||||||
| //
 | //
 | ||||||
| 
 | 
 | ||||||
| type AddOrUpdateDashboardPermissionCommand struct { | type SetDashboardAclCommand struct { | ||||||
| 	DashboardId int64          `json:"-"` | 	DashboardId int64          `json:"-"` | ||||||
| 	OrgId       int64          `json:"-"` | 	OrgId       int64          `json:"-"` | ||||||
| 	UserId      int64          `json:"userId"` | 	UserId      int64          `json:"userId"` | ||||||
| 	UserGroupId int64          `json:"userGroupId"` | 	UserGroupId int64          `json:"userGroupId"` | ||||||
| 	Permissions PermissionType `json:"permissionType" binding:"Required"` | 	Permissions PermissionType `json:"permissions" binding:"Required"` | ||||||
| 
 | 
 | ||||||
| 	Result DashboardAcl `json:"-"` | 	Result DashboardAcl `json:"-"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type RemoveDashboardPermissionCommand struct { | type RemoveDashboardAclCommand struct { | ||||||
| 	DashboardId int64 `json:"dashboardId" binding:"Required"` | 	DashboardId int64 `json:"dashboardId" binding:"Required"` | ||||||
| 	UserId      int64 `json:"userId"` | 	UserId      int64 `json:"userId"` | ||||||
| 	UserGroupId int64 `json:"userGroupId"` | 	UserGroupId int64 `json:"userGroupId"` | ||||||
|  |  | ||||||
|  | @ -8,13 +8,13 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func init() { | func init() { | ||||||
| 	bus.AddHandler("sql", AddOrUpdateDashboardPermission) | 	bus.AddHandler("sql", SetDashboardAcl) | ||||||
| 	bus.AddHandler("sql", RemoveDashboardPermission) | 	bus.AddHandler("sql", RemoveDashboardAcl) | ||||||
| 	bus.AddHandler("sql", GetDashboardPermissions) | 	bus.AddHandler("sql", GetDashboardPermissions) | ||||||
| 	bus.AddHandler("sql", GetInheritedDashboardAcl) | 	bus.AddHandler("sql", GetInheritedDashboardAcl) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func AddOrUpdateDashboardPermission(cmd *m.AddOrUpdateDashboardPermissionCommand) error { | func SetDashboardAcl(cmd *m.SetDashboardAclCommand) error { | ||||||
| 	return inTransaction(func(sess *DBSession) error { | 	return inTransaction(func(sess *DBSession) error { | ||||||
| 		if cmd.UserId == 0 && cmd.UserGroupId == 0 { | 		if cmd.UserId == 0 && cmd.UserGroupId == 0 { | ||||||
| 			return m.ErrDashboardPermissionUserOrUserGroupEmpty | 			return m.ErrDashboardPermissionUserOrUserGroupEmpty | ||||||
|  | @ -74,7 +74,7 @@ func AddOrUpdateDashboardPermission(cmd *m.AddOrUpdateDashboardPermissionCommand | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func RemoveDashboardPermission(cmd *m.RemoveDashboardPermissionCommand) error { | func RemoveDashboardAcl(cmd *m.RemoveDashboardAclCommand) error { | ||||||
| 	return inTransaction(func(sess *DBSession) error { | 	return inTransaction(func(sess *DBSession) error { | ||||||
| 		var rawSQL = "DELETE FROM " + dialect.Quote("dashboard_acl") + " WHERE dashboard_id =? and (user_group_id=? or user_id=?)" | 		var rawSQL = "DELETE FROM " + dialect.Quote("dashboard_acl") + " WHERE dashboard_id =? and (user_group_id=? or user_id=?)" | ||||||
| 		_, err := sess.Exec(rawSQL, cmd.DashboardId, cmd.UserGroupId, cmd.UserId) | 		_, err := sess.Exec(rawSQL, cmd.DashboardId, cmd.UserGroupId, cmd.UserId) | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 			childDash := insertTestDashboard("2 test dash", 1, savedFolder.Id, false, "prod", "webapp") | 			childDash := insertTestDashboard("2 test dash", 1, savedFolder.Id, false, "prod", "webapp") | ||||||
| 
 | 
 | ||||||
| 			Convey("When adding dashboard permission with userId and userGroupId set to 0", func() { | 			Convey("When adding dashboard permission with userId and userGroupId set to 0", func() { | ||||||
| 				err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 				err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 					OrgId:       1, | 					OrgId:       1, | ||||||
| 					DashboardId: savedFolder.Id, | 					DashboardId: savedFolder.Id, | ||||||
| 					Permissions: m.PERMISSION_EDIT, | 					Permissions: m.PERMISSION_EDIT, | ||||||
|  | @ -26,7 +26,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Given dashboard folder permission", func() { | 			Convey("Given dashboard folder permission", func() { | ||||||
| 				err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 				err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 					OrgId:       1, | 					OrgId:       1, | ||||||
| 					UserId:      currentUser.Id, | 					UserId:      currentUser.Id, | ||||||
| 					DashboardId: savedFolder.Id, | 					DashboardId: savedFolder.Id, | ||||||
|  | @ -45,7 +45,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
| 				Convey("Given child dashboard permission", func() { | 				Convey("Given child dashboard permission", func() { | ||||||
| 					err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 					err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserId:      currentUser.Id, | 						UserId:      currentUser.Id, | ||||||
| 						DashboardId: childDash.Id, | 						DashboardId: childDash.Id, | ||||||
|  | @ -67,7 +67,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Should be able to add dashboard permission", func() { | 			Convey("Should be able to add dashboard permission", func() { | ||||||
| 				err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 				err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 					OrgId:       1, | 					OrgId:       1, | ||||||
| 					UserId:      currentUser.Id, | 					UserId:      currentUser.Id, | ||||||
| 					DashboardId: savedFolder.Id, | 					DashboardId: savedFolder.Id, | ||||||
|  | @ -94,7 +94,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
| 				Convey("Should be able to update an existing permission", func() { | 				Convey("Should be able to update an existing permission", func() { | ||||||
| 					err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 					err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserId:      1, | 						UserId:      1, | ||||||
| 						DashboardId: savedFolder.Id, | 						DashboardId: savedFolder.Id, | ||||||
|  | @ -113,7 +113,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
| 				Convey("Should be able to delete an existing permission", func() { | 				Convey("Should be able to delete an existing permission", func() { | ||||||
| 					err := RemoveDashboardPermission(&m.RemoveDashboardPermissionCommand{ | 					err := RemoveDashboardAcl(&m.RemoveDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserId:      1, | 						UserId:      1, | ||||||
| 						DashboardId: savedFolder.Id, | 						DashboardId: savedFolder.Id, | ||||||
|  | @ -133,7 +133,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 				Convey("Should be able to add a user permission for a user group", func() { | 				Convey("Should be able to add a user permission for a user group", func() { | ||||||
| 					err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 					err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserGroupId: group1.Result.Id, | 						UserGroupId: group1.Result.Id, | ||||||
| 						DashboardId: savedFolder.Id, | 						DashboardId: savedFolder.Id, | ||||||
|  | @ -150,7 +150,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
| 				Convey("Should be able to update an existing permission for a user group", func() { | 				Convey("Should be able to update an existing permission for a user group", func() { | ||||||
| 					err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 					err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserGroupId: group1.Result.Id, | 						UserGroupId: group1.Result.Id, | ||||||
| 						DashboardId: savedFolder.Id, | 						DashboardId: savedFolder.Id, | ||||||
|  | @ -169,7 +169,7 @@ func TestDashboardAclDataAccess(t *testing.T) { | ||||||
| 				}) | 				}) | ||||||
| 
 | 
 | ||||||
| 				Convey("Should be able to delete an existing permission for a user group", func() { | 				Convey("Should be able to delete an existing permission for a user group", func() { | ||||||
| 					err := RemoveDashboardPermission(&m.RemoveDashboardPermissionCommand{ | 					err := RemoveDashboardAcl(&m.RemoveDashboardAclCommand{ | ||||||
| 						OrgId:       1, | 						OrgId:       1, | ||||||
| 						UserGroupId: group1.Result.Id, | 						UserGroupId: group1.Result.Id, | ||||||
| 						DashboardId: savedFolder.Id, | 						DashboardId: savedFolder.Id, | ||||||
|  |  | ||||||
|  | @ -380,7 +380,7 @@ func createUser(name string, role string, isAdmin bool) m.User { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func updateTestDashboardWithAcl(dashId int64, userId int64, permissions m.PermissionType) { | func updateTestDashboardWithAcl(dashId int64, userId int64, permissions m.PermissionType) { | ||||||
| 	err := AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{ | 	err := SetDashboardAcl(&m.SetDashboardAclCommand{ | ||||||
| 		OrgId:       1, | 		OrgId:       1, | ||||||
| 		UserId:      userId, | 		UserId:      userId, | ||||||
| 		DashboardId: dashId, | 		DashboardId: dashId, | ||||||
|  |  | ||||||
|  | @ -174,10 +174,10 @@ func TestAccountDataAccess(t *testing.T) { | ||||||
| 					So(err, ShouldBeNil) | 					So(err, ShouldBeNil) | ||||||
| 					So(len(query.Result), ShouldEqual, 3) | 					So(len(query.Result), ShouldEqual, 3) | ||||||
| 
 | 
 | ||||||
| 					err = AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{DashboardId: 1, OrgId: ac1.OrgId, UserId: ac3.Id, Permissions: m.PERMISSION_EDIT}) | 					err = SetDashboardAcl(&m.SetDashboardAclCommand{DashboardId: 1, OrgId: ac1.OrgId, UserId: ac3.Id, Permissions: m.PERMISSION_EDIT}) | ||||||
| 					So(err, ShouldBeNil) | 					So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 					err = AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{DashboardId: 2, OrgId: ac3.OrgId, UserId: ac3.Id, Permissions: m.PERMISSION_EDIT}) | 					err = SetDashboardAcl(&m.SetDashboardAclCommand{DashboardId: 2, OrgId: ac3.OrgId, UserId: ac3.Id, Permissions: m.PERMISSION_EDIT}) | ||||||
| 					So(err, ShouldBeNil) | 					So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 					Convey("When org user is deleted", func() { | 					Convey("When org user is deleted", func() { | ||||||
|  |  | ||||||
|  | @ -94,7 +94,7 @@ func TestUserGroupCommandsAndQueries(t *testing.T) { | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 				err = AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[2]}) | 				err = AddUserGroupMember(&m.AddUserGroupMemberCommand{OrgId: 1, UserGroupId: groupId, UserId: userIds[2]}) | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 				err = AddOrUpdateDashboardPermission(&m.AddOrUpdateDashboardPermissionCommand{DashboardId: 1, OrgId: 1, Permissions: m.PERMISSION_EDIT, UserGroupId: groupId}) | 				err = SetDashboardAcl(&m.SetDashboardAclCommand{DashboardId: 1, OrgId: 1, Permissions: m.PERMISSION_EDIT, UserGroupId: groupId}) | ||||||
| 
 | 
 | ||||||
| 				err = DeleteUserGroup(&m.DeleteUserGroupCommand{Id: groupId}) | 				err = DeleteUserGroup(&m.DeleteUserGroupCommand{Id: groupId}) | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	. "github.com/smartystreets/goconvey/convey" | 	. "github.com/smartystreets/goconvey/convey" | ||||||
| 
 | 
 | ||||||
| 	"github.com/grafana/grafana/pkg/models" | 	m "github.com/grafana/grafana/pkg/models" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestUserDataAccess(t *testing.T) { | func TestUserDataAccess(t *testing.T) { | ||||||
|  | @ -16,10 +16,10 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 		Convey("Given 5 users", func() { | 		Convey("Given 5 users", func() { | ||||||
| 			var err error | 			var err error | ||||||
| 			var cmd *models.CreateUserCommand | 			var cmd *m.CreateUserCommand | ||||||
| 			users := []models.User{} | 			users := []m.User{} | ||||||
| 			for i := 0; i < 5; i++ { | 			for i := 0; i < 5; i++ { | ||||||
| 				cmd = &models.CreateUserCommand{ | 				cmd = &m.CreateUserCommand{ | ||||||
| 					Email: fmt.Sprint("user", i, "@test.com"), | 					Email: fmt.Sprint("user", i, "@test.com"), | ||||||
| 					Name:  fmt.Sprint("user", i), | 					Name:  fmt.Sprint("user", i), | ||||||
| 					Login: fmt.Sprint("loginuser", i), | 					Login: fmt.Sprint("loginuser", i), | ||||||
|  | @ -30,7 +30,7 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			Convey("Can return the first page of users and a total count", func() { | 			Convey("Can return the first page of users and a total count", func() { | ||||||
| 				query := models.SearchUsersQuery{Query: "", Page: 1, Limit: 3} | 				query := m.SearchUsersQuery{Query: "", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  | @ -39,7 +39,7 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Can return the second page of users and a total count", func() { | 			Convey("Can return the second page of users and a total count", func() { | ||||||
| 				query := models.SearchUsersQuery{Query: "", Page: 2, Limit: 3} | 				query := m.SearchUsersQuery{Query: "", Page: 2, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  | @ -48,28 +48,28 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Can return list of users matching query on user name", func() { | 			Convey("Can return list of users matching query on user name", func() { | ||||||
| 				query := models.SearchUsersQuery{Query: "use", Page: 1, Limit: 3} | 				query := m.SearchUsersQuery{Query: "use", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 				So(len(query.Result.Users), ShouldEqual, 3) | 				So(len(query.Result.Users), ShouldEqual, 3) | ||||||
| 				So(query.Result.TotalCount, ShouldEqual, 5) | 				So(query.Result.TotalCount, ShouldEqual, 5) | ||||||
| 
 | 
 | ||||||
| 				query = models.SearchUsersQuery{Query: "ser1", Page: 1, Limit: 3} | 				query = m.SearchUsersQuery{Query: "ser1", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 				So(len(query.Result.Users), ShouldEqual, 1) | 				So(len(query.Result.Users), ShouldEqual, 1) | ||||||
| 				So(query.Result.TotalCount, ShouldEqual, 1) | 				So(query.Result.TotalCount, ShouldEqual, 1) | ||||||
| 
 | 
 | ||||||
| 				query = models.SearchUsersQuery{Query: "USER1", Page: 1, Limit: 3} | 				query = m.SearchUsersQuery{Query: "USER1", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 				So(len(query.Result.Users), ShouldEqual, 1) | 				So(len(query.Result.Users), ShouldEqual, 1) | ||||||
| 				So(query.Result.TotalCount, ShouldEqual, 1) | 				So(query.Result.TotalCount, ShouldEqual, 1) | ||||||
| 
 | 
 | ||||||
| 				query = models.SearchUsersQuery{Query: "idontexist", Page: 1, Limit: 3} | 				query = m.SearchUsersQuery{Query: "idontexist", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  | @ -78,7 +78,7 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Can return list of users matching query on email", func() { | 			Convey("Can return list of users matching query on email", func() { | ||||||
| 				query := models.SearchUsersQuery{Query: "ser1@test.com", Page: 1, Limit: 3} | 				query := m.SearchUsersQuery{Query: "ser1@test.com", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  | @ -87,7 +87,7 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("Can return list of users matching query on login name", func() { | 			Convey("Can return list of users matching query on login name", func() { | ||||||
| 				query := models.SearchUsersQuery{Query: "loginuser1", Page: 1, Limit: 3} | 				query := m.SearchUsersQuery{Query: "loginuser1", Page: 1, Limit: 3} | ||||||
| 				err = SearchUsers(&query) | 				err = SearchUsers(&query) | ||||||
| 
 | 
 | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
|  | @ -96,33 +96,33 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			Convey("when a user is an org member and has been assigned permissions", func() { | 			Convey("when a user is an org member and has been assigned permissions", func() { | ||||||
| 				err = AddOrgUser(&models.AddOrgUserCommand{LoginOrEmail: users[0].Login, Role: models.ROLE_VIEWER, OrgId: users[0].OrgId}) | 				err = AddOrgUser(&m.AddOrgUserCommand{LoginOrEmail: users[0].Login, Role: m.ROLE_VIEWER, OrgId: users[0].OrgId}) | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 				err = AddOrUpdateDashboardPermission(&models.AddOrUpdateDashboardPermissionCommand{DashboardId: 1, OrgId: users[0].OrgId, UserId: users[0].Id, Permissions: models.PERMISSION_EDIT}) | 				err = SetDashboardAcl(&m.SetDashboardAclCommand{DashboardId: 1, OrgId: users[0].OrgId, UserId: users[0].Id, Permissions: m.PERMISSION_EDIT}) | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 				err = SavePreferences(&models.SavePreferencesCommand{UserId: users[0].Id, OrgId: users[0].OrgId, HomeDashboardId: 1, Theme: "dark"}) | 				err = SavePreferences(&m.SavePreferencesCommand{UserId: users[0].Id, OrgId: users[0].OrgId, HomeDashboardId: 1, Theme: "dark"}) | ||||||
| 				So(err, ShouldBeNil) | 				So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 				Convey("when the user is deleted", func() { | 				Convey("when the user is deleted", func() { | ||||||
| 					err = DeleteUser(&models.DeleteUserCommand{UserId: users[0].Id}) | 					err = DeleteUser(&m.DeleteUserCommand{UserId: users[0].Id}) | ||||||
| 					So(err, ShouldBeNil) | 					So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 					Convey("Should delete connected org users and permissions", func() { | 					Convey("Should delete connected org users and permissions", func() { | ||||||
| 						query := &models.GetOrgUsersQuery{OrgId: 1} | 						query := &m.GetOrgUsersQuery{OrgId: 1} | ||||||
| 						err = GetOrgUsersForTest(query) | 						err = GetOrgUsersForTest(query) | ||||||
| 						So(err, ShouldBeNil) | 						So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 						So(len(query.Result), ShouldEqual, 1) | 						So(len(query.Result), ShouldEqual, 1) | ||||||
| 
 | 
 | ||||||
| 						permQuery := &models.GetDashboardPermissionsQuery{DashboardId: 1} | 						permQuery := &m.GetDashboardPermissionsQuery{DashboardId: 1} | ||||||
| 						err = GetDashboardPermissions(permQuery) | 						err = GetDashboardPermissions(permQuery) | ||||||
| 						So(err, ShouldBeNil) | 						So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
| 						So(len(permQuery.Result), ShouldEqual, 0) | 						So(len(permQuery.Result), ShouldEqual, 0) | ||||||
| 
 | 
 | ||||||
| 						prefsQuery := &models.GetPreferencesQuery{OrgId: users[0].OrgId, UserId: users[0].Id} | 						prefsQuery := &m.GetPreferencesQuery{OrgId: users[0].OrgId, UserId: users[0].Id} | ||||||
| 						err = GetPreferences(prefsQuery) | 						err = GetPreferences(prefsQuery) | ||||||
| 						So(err, ShouldBeNil) | 						So(err, ShouldBeNil) | ||||||
| 
 | 
 | ||||||
|  | @ -135,8 +135,8 @@ func TestUserDataAccess(t *testing.T) { | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func GetOrgUsersForTest(query *models.GetOrgUsersQuery) error { | func GetOrgUsersForTest(query *m.GetOrgUsersQuery) error { | ||||||
| 	query.Result = make([]*models.OrgUserDTO, 0) | 	query.Result = make([]*m.OrgUserDTO, 0) | ||||||
| 	sess := x.Table("org_user") | 	sess := x.Table("org_user") | ||||||
| 	sess.Join("LEFT ", "user", fmt.Sprintf("org_user.user_id=%s.id", x.Dialect().Quote("user"))) | 	sess.Join("LEFT ", "user", fmt.Sprintf("org_user.user_id=%s.id", x.Dialect().Quote("user"))) | ||||||
| 	sess.Where("org_user.org_id=?", query.OrgId) | 	sess.Where("org_user.org_id=?", query.OrgId) | ||||||
|  |  | ||||||
|  | @ -57,9 +57,7 @@ | ||||||
| 			<h6 ng-hide="ctrl.results.length">No dashboards matching your query were found.</h6> | 			<h6 ng-hide="ctrl.results.length">No dashboards matching your query were found.</h6> | ||||||
| 
 | 
 | ||||||
|     <div bindonce ng-repeat="row in ctrl.results"> |     <div bindonce ng-repeat="row in ctrl.results"> | ||||||
|       <a class="search-item pointer search-item-{{row.type}}" |       <a class="search-item pointer search-item-{{row.type}}" ng-class="{'selected': $index == ctrl.selectedIndex}" ng-href="{{row.url}}"> | ||||||
|         ng-class="{'selected': $index == ctrl.selectedIndex}" ng-href="{{row.url}}"> |  | ||||||
| 
 |  | ||||||
|         <span class="search-result-tags"> |         <span class="search-result-tags"> | ||||||
|           <span ng-click="ctrl.filterByTag(tag, $event)" ng-repeat="tag in row.tags" tag-color-from-name="tag"  class="label label-tag"> |           <span ng-click="ctrl.filterByTag(tag, $event)" ng-repeat="tag in row.tags" tag-color-from-name="tag"  class="label label-tag"> | ||||||
|             {{tag}} |             {{tag}} | ||||||
|  | @ -71,6 +69,7 @@ | ||||||
|           <i class="fa search-result-icon"></i> |           <i class="fa search-result-icon"></i> | ||||||
|           <span bo-text="row.title"></span> |           <span bo-text="row.title"></span> | ||||||
|         </span> |         </span> | ||||||
|  | 
 | ||||||
|         <a class="search-item search-item-child pointer search-item-{{child.type}}" ng-repeat="child in row.dashboards" |         <a class="search-item search-item-child pointer search-item-{{child.type}}" ng-repeat="child in row.dashboards" | ||||||
|           ng-class="{'selected': $index == ctrl.selectedIndex}" ng-href="{{'dashboard/' + child.uri}}"> |           ng-class="{'selected': $index == ctrl.selectedIndex}" ng-href="{{'dashboard/' + child.uri}}"> | ||||||
|           <span class="search-result-tags"> |           <span class="search-result-tags"> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue