diff --git a/models/issues/comment_list.go b/models/issues/comment_list.go index 495d48ff44b..24b28234d0e 100644 --- a/models/issues/comment_list.go +++ b/models/issues/comment_list.go @@ -201,6 +201,9 @@ func (comments CommentList) loadAssignees(ctx context.Context) error { } for _, comment := range comments { + if comment.AssigneeID <= 0 { + continue + } comment.Assignee = assignees[comment.AssigneeID] if comment.Assignee == nil { comment.AssigneeID = user_model.GhostUserID diff --git a/models/issues/comment_test.go b/models/issues/comment_test.go index 7b4dfed083f..1364cdbec63 100644 --- a/models/issues/comment_test.go +++ b/models/issues/comment_test.go @@ -58,6 +58,20 @@ func TestLoadAssigneeUserAndTeam_DeletedTeamBecomesGhostTeam(t *testing.T) { assert.EqualValues(t, -1, comment.AssigneeTeam.ID) } +func TestCommentListLoadAttributesMixedAssignees(t *testing.T) { + assert.NoError(t, unittest.PrepareTestDatabase()) + comments := issues_model.CommentList{ + {AssigneeTeamID: 8}, + {AssigneeID: 999999}, + } + + assert.NoError(t, comments.LoadAttributes(t.Context())) + assert.Nil(t, comments[0].Assignee) + assert.Zero(t, comments[0].AssigneeID) + assert.Equal(t, user_model.GhostUserID, comments[1].AssigneeID) + assert.Equal(t, user_model.GhostUserID, comments[1].Assignee.ID) +} + func Test_UpdateCommentAttachment(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase())