mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Teams: Fix missing context in team service (#83327)
fix missing context in team service
This commit is contained in:
@@ -641,7 +641,7 @@ func TestIntegrationMergeUser(t *testing.T) {
|
|||||||
userWithUpperCase, err := usrSvc.Create(context.Background(), &dupUserEmailcmd)
|
userWithUpperCase, err := usrSvc.Create(context.Background(), &dupUserEmailcmd)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// this is the user we want to update to another team
|
// this is the user we want to update to another team
|
||||||
err = teamSvc.AddTeamMember(userWithUpperCase.ID, testOrgID, team1.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userWithUpperCase.ID, testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// get users
|
// get users
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ func createUserAndTeam(t *testing.T, userSrv user.Service, teamSvc team.Service,
|
|||||||
team, err := teamSvc.CreateTeam("team", "", orgID)
|
team, err := teamSvc.CreateTeam("team", "", orgID)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(user.ID, orgID, team.ID, false, dashboardaccess.PERMISSION_VIEW)
|
err = teamSvc.AddTeamMember(context.Background(), user.ID, orgID, team.ID, false, dashboardaccess.PERMISSION_VIEW)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
return user, team
|
return user, team
|
||||||
@@ -303,7 +303,7 @@ func createUsersAndTeams(t *testing.T, svcs helperServices, orgID int64, users [
|
|||||||
team, err := svcs.teamSvc.CreateTeam(fmt.Sprintf("team%v", i+1), "", orgID)
|
team, err := svcs.teamSvc.CreateTeam(fmt.Sprintf("team%v", i+1), "", orgID)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = svcs.teamSvc.AddTeamMember(user.ID, orgID, team.ID, false, dashboardaccess.PERMISSION_VIEW)
|
err = svcs.teamSvc.AddTeamMember(context.Background(), user.ID, orgID, team.ID, false, dashboardaccess.PERMISSION_VIEW)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = svcs.orgSvc.UpdateOrgUser(context.Background(),
|
err = svcs.orgSvc.UpdateOrgUser(context.Background(),
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ func generateTeamsAndUsers(b *testing.B, db *sqlstore.SQLStore, users int) ([]in
|
|||||||
globalUserId++
|
globalUserId++
|
||||||
userIds = append(userIds, userId)
|
userIds = append(userIds, userId)
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userId, 1, teamId, false, 1)
|
err = teamSvc.AddTeamMember(context.Background(), userId, 1, teamId, false, 1)
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ type Service interface {
|
|||||||
GetTeamByID(ctx context.Context, query *GetTeamByIDQuery) (*TeamDTO, error)
|
GetTeamByID(ctx context.Context, query *GetTeamByIDQuery) (*TeamDTO, error)
|
||||||
GetTeamsByUser(ctx context.Context, query *GetTeamsByUserQuery) ([]*TeamDTO, error)
|
GetTeamsByUser(ctx context.Context, query *GetTeamsByUserQuery) ([]*TeamDTO, error)
|
||||||
GetTeamIDsByUser(ctx context.Context, query *GetTeamIDsByUserQuery) ([]int64, error)
|
GetTeamIDsByUser(ctx context.Context, query *GetTeamIDsByUserQuery) ([]int64, error)
|
||||||
AddTeamMember(userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error
|
AddTeamMember(ctx context.Context, userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error
|
||||||
UpdateTeamMember(ctx context.Context, cmd *UpdateTeamMemberCommand) error
|
UpdateTeamMember(ctx context.Context, cmd *UpdateTeamMemberCommand) error
|
||||||
IsTeamMember(orgId int64, teamId int64, userId int64) (bool, error)
|
IsTeamMember(orgId int64, teamId int64, userId int64) (bool, error)
|
||||||
RemoveTeamMember(ctx context.Context, cmd *RemoveTeamMemberCommand) error
|
RemoveTeamMember(ctx context.Context, cmd *RemoveTeamMemberCommand) error
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ type store interface {
|
|||||||
GetByUser(ctx context.Context, query *team.GetTeamsByUserQuery) ([]*team.TeamDTO, error)
|
GetByUser(ctx context.Context, query *team.GetTeamsByUserQuery) ([]*team.TeamDTO, error)
|
||||||
GetIDsByUser(ctx context.Context, query *team.GetTeamIDsByUserQuery) ([]int64, error)
|
GetIDsByUser(ctx context.Context, query *team.GetTeamIDsByUserQuery) ([]int64, error)
|
||||||
RemoveUsersMemberships(ctx context.Context, userID int64) error
|
RemoveUsersMemberships(ctx context.Context, userID int64) error
|
||||||
AddMember(userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error
|
AddMember(ctx context.Context, userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error
|
||||||
UpdateMember(ctx context.Context, cmd *team.UpdateTeamMemberCommand) error
|
UpdateMember(ctx context.Context, cmd *team.UpdateTeamMemberCommand) error
|
||||||
IsMember(orgId int64, teamId int64, userId int64) (bool, error)
|
IsMember(orgId int64, teamId int64, userId int64) (bool, error)
|
||||||
RemoveMember(ctx context.Context, cmd *team.RemoveTeamMemberCommand) error
|
RemoveMember(ctx context.Context, cmd *team.RemoveTeamMemberCommand) error
|
||||||
@@ -355,8 +355,8 @@ WHERE tm.user_id=? AND tm.org_id=?;`, query.UserID, query.OrgID).Find(&queryResu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddTeamMember adds a user to a team
|
// AddTeamMember adds a user to a team
|
||||||
func (ss *xormStore) AddMember(userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
func (ss *xormStore) AddMember(ctx context.Context, userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
||||||
return ss.db.WithTransactionalDbSession(context.Background(), func(sess *db.Session) error {
|
return ss.db.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
|
||||||
if isMember, err := isTeamMember(sess, orgID, teamID, userID); err != nil {
|
if isMember, err := isTeamMember(sess, orgID, teamID, userID); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if isMember {
|
} else if isMember {
|
||||||
|
|||||||
@@ -92,9 +92,9 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
require.Equal(t, team1.OrgID, testOrgID)
|
require.Equal(t, team1.OrgID, testOrgID)
|
||||||
require.EqualValues(t, team1.MemberCount, 0)
|
require.EqualValues(t, team1.MemberCount, 0)
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, team1.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = teamSvc.AddTeamMember(userIds[1], testOrgID, team1.ID, true, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[1], testOrgID, team1.ID, true, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
q1 := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
q1 := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
||||||
@@ -152,7 +152,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
|
|
||||||
team1 := teamQueryResult.Teams[0]
|
team1 := teamQueryResult.Teams[0]
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userId, testOrgID, team1.ID, true, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userId, testOrgID, team1.ID, true, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
memberQuery := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, External: true, SignedInUser: testUser}
|
memberQuery := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, External: true, SignedInUser: testUser}
|
||||||
@@ -168,7 +168,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
t.Run("Should be able to update users in a team", func(t *testing.T) {
|
t.Run("Should be able to update users in a team", func(t *testing.T) {
|
||||||
userId := userIds[0]
|
userId := userIds[0]
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userId, testOrgID, team1.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userId, testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
qBeforeUpdate := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
qBeforeUpdate := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
||||||
@@ -195,7 +195,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
sqlStore = db.InitTestDB(t)
|
sqlStore = db.InitTestDB(t)
|
||||||
setup()
|
setup()
|
||||||
userID := userIds[0]
|
userID := userIds[0]
|
||||||
err = teamSvc.AddTeamMember(userID, testOrgID, team1.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userID, testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
qBeforeUpdate := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
qBeforeUpdate := &team.GetTeamMembersQuery{OrgID: testOrgID, TeamID: team1.ID, SignedInUser: testUser}
|
||||||
@@ -251,7 +251,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Add a team member
|
// Add a team member
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, team2.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team2.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer func() {
|
defer func() {
|
||||||
err := teamSvc.RemoveTeamMember(context.Background(),
|
err := teamSvc.RemoveTeamMember(context.Background(),
|
||||||
@@ -304,7 +304,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
sqlStore = db.InitTestDB(t)
|
sqlStore = db.InitTestDB(t)
|
||||||
setup()
|
setup()
|
||||||
groupId := team2.ID
|
groupId := team2.ID
|
||||||
err := teamSvc.AddTeamMember(userIds[0], testOrgID, groupId, false, 0)
|
err := teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, groupId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
query := &team.GetTeamsByUserQuery{
|
query := &team.GetTeamsByUserQuery{
|
||||||
@@ -323,7 +323,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Should be able to remove users from a group", func(t *testing.T) {
|
t.Run("Should be able to remove users from a group", func(t *testing.T) {
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, team1.ID, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = teamSvc.RemoveTeamMember(context.Background(), &team.RemoveTeamMemberCommand{OrgID: testOrgID, TeamID: team1.ID, UserID: userIds[0]})
|
err = teamSvc.RemoveTeamMember(context.Background(), &team.RemoveTeamMemberCommand{OrgID: testOrgID, TeamID: team1.ID, UserID: userIds[0]})
|
||||||
@@ -336,7 +336,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Should have empty teams", func(t *testing.T) {
|
t.Run("Should have empty teams", func(t *testing.T) {
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
t.Run("A user should be able to remove the admin permission for the last admin", func(t *testing.T) {
|
t.Run("A user should be able to remove the admin permission for the last admin", func(t *testing.T) {
|
||||||
@@ -353,10 +353,10 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
sqlStore = db.InitTestDB(t)
|
sqlStore = db.InitTestDB(t)
|
||||||
setup()
|
setup()
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = teamSvc.AddTeamMember(userIds[1], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[1], testOrgID, team1.ID, false, dashboardaccess.PERMISSION_ADMIN)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = teamSvc.UpdateTeamMember(context.Background(), &team.UpdateTeamMemberCommand{OrgID: testOrgID, TeamID: team1.ID, UserID: userIds[0], Permission: 0})
|
err = teamSvc.UpdateTeamMember(context.Background(), &team.UpdateTeamMemberCommand{OrgID: testOrgID, TeamID: team1.ID, UserID: userIds[0], Permission: 0})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@@ -379,11 +379,11 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
hiddenUsers := map[string]struct{}{"loginuser0": {}, "loginuser1": {}}
|
hiddenUsers := map[string]struct{}{"loginuser0": {}, "loginuser1": {}}
|
||||||
|
|
||||||
teamId := team1.ID
|
teamId := team1.ID
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, teamId, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, teamId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = teamSvc.AddTeamMember(userIds[1], testOrgID, teamId, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[1], testOrgID, teamId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
err = teamSvc.AddTeamMember(userIds[2], testOrgID, teamId, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[2], testOrgID, teamId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
searchQuery := &team.SearchTeamsQuery{OrgID: testOrgID, Page: 1, Limit: 10, SignedInUser: signedInUser, HiddenUsers: hiddenUsers}
|
searchQuery := &team.SearchTeamsQuery{OrgID: testOrgID, Page: 1, Limit: 10, SignedInUser: signedInUser, HiddenUsers: hiddenUsers}
|
||||||
@@ -418,11 +418,11 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
|
|||||||
|
|
||||||
groupId := team2.ID
|
groupId := team2.ID
|
||||||
// add service account to team
|
// add service account to team
|
||||||
err = teamSvc.AddTeamMember(serviceAccount.ID, testOrgID, groupId, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), serviceAccount.ID, testOrgID, groupId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// add user to team
|
// add user to team
|
||||||
err = teamSvc.AddTeamMember(userIds[0], testOrgID, groupId, false, 0)
|
err = teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, groupId, false, 0)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
teamMembersQuery := &team.GetTeamMembersQuery{
|
teamMembersQuery := &team.GetTeamMembersQuery{
|
||||||
@@ -550,13 +550,13 @@ func TestIntegrationSQLStore_GetTeamMembers_ACFilter(t *testing.T) {
|
|||||||
userIds[i] = user.ID
|
userIds[i] = user.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
errAddMember := teamSvc.AddTeamMember(userIds[0], testOrgID, team1.ID, false, 0)
|
errAddMember := teamSvc.AddTeamMember(context.Background(), userIds[0], testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, errAddMember)
|
require.NoError(t, errAddMember)
|
||||||
errAddMember = teamSvc.AddTeamMember(userIds[1], testOrgID, team1.ID, false, 0)
|
errAddMember = teamSvc.AddTeamMember(context.Background(), userIds[1], testOrgID, team1.ID, false, 0)
|
||||||
require.NoError(t, errAddMember)
|
require.NoError(t, errAddMember)
|
||||||
errAddMember = teamSvc.AddTeamMember(userIds[2], testOrgID, team2.ID, false, 0)
|
errAddMember = teamSvc.AddTeamMember(context.Background(), userIds[2], testOrgID, team2.ID, false, 0)
|
||||||
require.NoError(t, errAddMember)
|
require.NoError(t, errAddMember)
|
||||||
errAddMember = teamSvc.AddTeamMember(userIds[3], testOrgID, team2.ID, false, 0)
|
errAddMember = teamSvc.AddTeamMember(context.Background(), userIds[3], testOrgID, team2.ID, false, 0)
|
||||||
require.NoError(t, errAddMember)
|
require.NoError(t, errAddMember)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ func (s *Service) GetTeamIDsByUser(ctx context.Context, query *team.GetTeamIDsBy
|
|||||||
return s.store.GetIDsByUser(ctx, query)
|
return s.store.GetIDsByUser(ctx, query)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) AddTeamMember(userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
func (s *Service) AddTeamMember(ctx context.Context, userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
||||||
return s.store.AddMember(userID, orgID, teamID, isExternal, permission)
|
return s.store.AddMember(ctx, userID, orgID, teamID, isExternal, permission)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) UpdateTeamMember(ctx context.Context, cmd *team.UpdateTeamMemberCommand) error {
|
func (s *Service) UpdateTeamMember(ctx context.Context, cmd *team.UpdateTeamMemberCommand) error {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ func (s *FakeService) GetTeamsByUser(ctx context.Context, query *team.GetTeamsBy
|
|||||||
return s.ExpectedTeamsByUser, s.ExpectedError
|
return s.ExpectedTeamsByUser, s.ExpectedError
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FakeService) AddTeamMember(userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
func (s *FakeService) AddTeamMember(ctx context.Context, userID, orgID, teamID int64, isExternal bool, permission dashboardaccess.PermissionType) error {
|
||||||
return s.ExpectedError
|
return s.ExpectedError
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user