diff --git a/pkg/services/team/model.go b/pkg/services/team/model.go index 1fcc79f941f..15c362eb272 100644 --- a/pkg/services/team/model.go +++ b/pkg/services/team/model.go @@ -177,6 +177,7 @@ type TeamMemberDTO struct { TeamID int64 `json:"teamId" xorm:"team_id"` TeamUID string `json:"teamUID" xorm:"uid"` UserID int64 `json:"userId" xorm:"user_id"` + UserUID string `json:"userUID" xorm:"user_uid"` External bool `json:"-"` AuthModule string `json:"auth_module"` Email string `json:"email"` diff --git a/pkg/services/team/teamimpl/store.go b/pkg/services/team/teamimpl/store.go index 557d6513fa4..34260ae10d0 100644 --- a/pkg/services/team/teamimpl/store.go +++ b/pkg/services/team/teamimpl/store.go @@ -551,18 +551,17 @@ func (ss *xormStore) getTeamMembers(ctx context.Context, query *team.GetTeamMemb if query.External { sess.Where("team_member.external=?", ss.db.GetDialect().BooleanValue(true)) } - sess.Cols( - "team_member.org_id", - "team_member.team_id", - "team_member.user_id", - "user.email", - "user.name", - "user.login", - "team_member.external", - "team_member.permission", - "user_auth.auth_module", - "team.uid", - ) + sess.Select(fmt.Sprintf(`team_member.org_id, + team_member.team_id, + team_member.user_id, + %[1]s.email, + %[1]s.name, + %[1]s.login, + %[1]s.uid as user_uid, + team_member.external, + team_member.permission, + user_auth.auth_module, + team.uid`, ss.db.GetDialect().Quote("user"))) sess.Asc("user.login", "user.email") err := sess.Find(&queryResult) diff --git a/pkg/services/team/teamimpl/store_test.go b/pkg/services/team/teamimpl/store_test.go index 066cc02b13e..ae082b4907d 100644 --- a/pkg/services/team/teamimpl/store_test.go +++ b/pkg/services/team/teamimpl/store_test.go @@ -58,6 +58,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) { t.Run("Given saved users and two teams", func(t *testing.T) { var userIds []int64 + var userUIDs []string const testOrgID int64 = 1 var team1, team2 team.Team var usr *user.User @@ -74,6 +75,7 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) { usr, err = userSvc.Create(context.Background(), &userCmd) require.NoError(t, err) userIds = append(userIds, usr.ID) + userUIDs = append(userUIDs, usr.UID) } team1, err = teamSvc.CreateTeam(context.Background(), "group1 name", "test1@test.com", testOrgID) require.NoError(t, err) @@ -108,9 +110,13 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) { require.NoError(t, err) require.Equal(t, 2, len(q1Result)) require.Equal(t, q1Result[0].TeamID, team1.ID) + require.Contains(t, userIds[:2], q1Result[0].UserID) + require.Contains(t, userUIDs[:2], q1Result[0].UserUID) require.Equal(t, q1Result[0].Login, "loginuser0") require.Equal(t, q1Result[0].OrgID, testOrgID) require.Equal(t, q1Result[1].TeamID, team1.ID) + require.Contains(t, userIds[:2], q1Result[1].UserID) + require.Contains(t, userUIDs[:2], q1Result[1].UserUID) require.Equal(t, q1Result[1].Login, "loginuser1") require.Equal(t, q1Result[1].OrgID, testOrgID) require.Equal(t, q1Result[1].External, true) diff --git a/public/api-merged.json b/public/api-merged.json index cba17c0c8ac..69c75802fa7 100644 --- a/public/api-merged.json +++ b/public/api-merged.json @@ -21247,6 +21247,9 @@ "userId": { "type": "integer", "format": "int64" + }, + "userUID": { + "type": "string" } } }, diff --git a/public/openapi3.json b/public/openapi3.json index 78d904c2847..49aa64f9c5e 100644 --- a/public/openapi3.json +++ b/public/openapi3.json @@ -11308,6 +11308,9 @@ "userId": { "format": "int64", "type": "integer" + }, + "userUID": { + "type": "string" } }, "type": "object"