Skip to content

Commit c0211a1

Browse files
models: Add GetUserTeams().
Returns all the teams that a user belongs to.
1 parent fdf1d98 commit c0211a1

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

models/org_team.go

+12
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,13 @@ func GetTeamMembers(teamID int64) ([]*User, error) {
543543
return getTeamMembers(x, teamID)
544544
}
545545

546+
func getUserTeams(e Engine, userID int64) (teams []*Team, err error) {
547+
return teams, e.
548+
Join("INNER", "team_user", "team_user.team_id = team.id").
549+
Where("team_user.uid=?", userID).
550+
Find(&teams)
551+
}
552+
546553
func getUserOrgTeams(e Engine, orgID, userID int64) (teams []*Team, err error) {
547554
return teams, e.
548555
Join("INNER", "team_user", "team_user.team_id = team.id").
@@ -566,6 +573,11 @@ func GetUserOrgTeams(orgID, userID int64) ([]*Team, error) {
566573
return getUserOrgTeams(x, orgID, userID)
567574
}
568575

576+
// GetUserTeams returns all teams that user belongs across all organizations.
577+
func GetUserTeams(userID int64) ([]*Team, error) {
578+
return getUserTeams(x, userID)
579+
}
580+
569581
// AddTeamMember adds new membership of given team to given organization,
570582
// the user will have membership to given organization automatically when needed.
571583
func AddTeamMember(team *Team, userID int64) error {

models/org_team_test.go

+14
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,20 @@ func TestGetTeamMembers(t *testing.T) {
283283
test(3)
284284
}
285285

286+
func TestGetUserTeams(t *testing.T) {
287+
assert.NoError(t, PrepareTestDatabase())
288+
test := func(userID int64) {
289+
teams, err := GetUserTeams(userID)
290+
assert.NoError(t, err)
291+
for _, team := range teams {
292+
AssertExistsAndLoadBean(t, &TeamUser{TeamID: team.ID, UID: userID})
293+
}
294+
}
295+
test(2)
296+
test(5)
297+
test(NonexistentID)
298+
}
299+
286300
func TestGetUserOrgTeams(t *testing.T) {
287301
assert.NoError(t, PrepareTestDatabase())
288302
test := func(orgID, userID int64) {

0 commit comments

Comments
 (0)