From e46a8c90ea11a24bbaa1ccaaf6600d5374ec26cf Mon Sep 17 00:00:00 2001 From: "Otto Richter (fnetX)" Date: Fri, 4 Mar 2022 19:29:12 +0100 Subject: [PATCH] Fix potential assignee query for repo (#18994) * Fix potential assignee query for repo * Add tests for `GetRepoAssignees` - As per https://github.com/go-gitea/gitea/pull/18994#issuecomment-1058506640 Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Gusted Co-authored-by: Lunny Xiao --- models/repo.go | 2 +- models/repo_test.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/models/repo.go b/models/repo.go index 6a806b7e25..38527c74dc 100644 --- a/models/repo.go +++ b/models/repo.go @@ -153,7 +153,7 @@ func getRepoAssignees(ctx context.Context, repo *repo_model.Repository) (_ []*us userIDs := make([]int64, 0, 10) if err = e.Table("access"). Where("repo_id = ? AND mode >= ?", repo.ID, perm.AccessModeWrite). - Select("id"). + Select("user_id"). Find(&userIDs); err != nil { return nil, err } diff --git a/models/repo_test.go b/models/repo_test.go index c0790e532d..ea250be976 100644 --- a/models/repo_test.go +++ b/models/repo_test.go @@ -167,3 +167,21 @@ func TestLinkedRepository(t *testing.T) { }) } } + +func TestRepoAssignees(t *testing.T) { + assert.NoError(t, unittest.PrepareTestDatabase()) + + repo2 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2}).(*repo_model.Repository) + users, err := GetRepoAssignees(repo2) + assert.NoError(t, err) + assert.Len(t, users, 1) + assert.Equal(t, users[0].ID, int64(2)) + + repo21 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 21}).(*repo_model.Repository) + users, err = GetRepoAssignees(repo21) + assert.NoError(t, err) + assert.Len(t, users, 3) + assert.Equal(t, users[0].ID, int64(15)) + assert.Equal(t, users[1].ID, int64(18)) + assert.Equal(t, users[2].ID, int64(16)) +}