aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/org_team.go9
-rw-r--r--models/org_team_test.go6
2 files changed, 9 insertions, 6 deletions
diff --git a/models/org_team.go b/models/org_team.go
index 1786376d02..799716679c 100644
--- a/models/org_team.go
+++ b/models/org_team.go
@@ -760,11 +760,14 @@ func IsUserInTeams(userID int64, teamIDs []int64) (bool, error) {
}
// UsersInTeamsCount counts the number of users which are in userIDs and teamIDs
-func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (count int64, err error) {
- if count, err = x.In("uid", userIDs).In("team_id", teamIDs).Count(new(TeamUser)); err != nil {
+func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (int64, error) {
+ var ids []int64
+ if err := x.In("uid", userIDs).In("team_id", teamIDs).
+ Table("team_user").
+ Cols("uid").GroupBy("uid").Find(&ids); err != nil {
return 0, err
}
- return
+ return int64(len(ids)), nil
}
// ___________ __________
diff --git a/models/org_team_test.go b/models/org_team_test.go
index a81f9c0749..06ab4637d8 100644
--- a/models/org_team_test.go
+++ b/models/org_team_test.go
@@ -370,7 +370,7 @@ func TestUsersInTeamsCount(t *testing.T) {
assert.Equal(t, expected, count)
}
- test([]int64{2}, []int64{1, 2, 3, 4}, 2)
- test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2)
- test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3)
+ test([]int64{2}, []int64{1, 2, 3, 4}, 1) // only userid 2
+ test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) // userid 2,4
+ test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5
}