From e5b6b7b370a05865b49d3b27863b5121b71dd268 Mon Sep 17 00:00:00 2001 From: Mihai Doarna Date: Wed, 19 Mar 2025 16:47:45 +0200 Subject: [PATCH] Team: Include user UID in GetTeamMembers() output (#102373) * include user UID in GetTeamMembers() output * move user.uid next to the other user fields * generate openapi specs * remove new line at EOF * fix sql select syntax * fix sql select syntax * fix sql select syntax * fix sql select syntax --- pkg/services/team/model.go | 1 + pkg/services/team/teamimpl/store.go | 23 +++++++++++------------ pkg/services/team/teamimpl/store_test.go | 6 ++++++ public/api-merged.json | 3 +++ public/openapi3.json | 3 +++ 5 files changed, 24 insertions(+), 12 deletions(-) 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..ab30909214c 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("team_member.org_id," + + "team_member.team_id," + + "team_member.user_id," + + "\"user\".email," + + "\"user\".name," + + "\"user\".login," + + "\"user\".uid as user_uid," + + "team_member.external," + + "team_member.permission," + + "user_auth.auth_module," + + "team.uid") 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 6beecc94824..8e9edece61a 100644 --- a/public/api-merged.json +++ b/public/api-merged.json @@ -21220,6 +21220,9 @@ "userId": { "type": "integer", "format": "int64" + }, + "userUID": { + "type": "string" } } }, diff --git a/public/openapi3.json b/public/openapi3.json index 9440b5efd7d..944b488afaa 100644 --- a/public/openapi3.json +++ b/public/openapi3.json @@ -11281,6 +11281,9 @@ "userId": { "format": "int64", "type": "integer" + }, + "userUID": { + "type": "string" } }, "type": "object"