From da985b25ce98827a0a89ff69ccc9279b4da85ca7 Mon Sep 17 00:00:00 2001 From: "Otto Richter (fnetX)" Date: Fri, 4 Mar 2022 17:12:34 +0100 Subject: [PATCH] Fix potential assignee query for repo (#18994) (#18999) * 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: Gusted --- 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 d637b88083..e82fd5dedf 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)) +}