diff --git a/models/issue.go b/models/issue.go index 20af154b36b14..27f6ba0bcabed 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1446,7 +1446,7 @@ func getParticipantsByIssueID(e Engine, issueID int64) ([]*User, error) { userIDs := make([]int64, 0, 5) if err := e.Table("comment").Cols("poster_id"). Where("`comment`.issue_id = ?", issueID). - And("`comment`.type = ?", CommentTypeComment). + And("`comment`.type in (?,?,?)", CommentTypeComment, CommentTypeCode, CommentTypeReview). And("`user`.is_active = ?", true). And("`user`.prohibit_login = ?", false). Join("INNER", "`user`", "`user`.id = `comment`.poster_id"). diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 12c38b86208d8..583ca51a161a6 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -805,17 +805,7 @@ func ViewIssue(ctx *context.Context) { return } marked[comment.PosterID] = comment.ShowTag - - isAdded := false - for j := range participants { - if comment.Poster == participants[j] { - isAdded = true - break - } - } - if !isAdded && !issue.IsPoster(comment.Poster.ID) { - participants = append(participants, comment.Poster) - } + participants = addParticipant(comment.Poster, participants) } else if comment.Type == models.CommentTypeLabel { if err = comment.LoadLabel(); err != nil { ctx.ServerError("LoadLabel", err) @@ -851,6 +841,7 @@ func ViewIssue(ctx *context.Context) { ctx.ServerError("LoadReview", err) return } + participants = addParticipant(comment.Poster, participants) if comment.Review == nil { continue } @@ -1573,3 +1564,12 @@ func ChangeCommentReaction(ctx *context.Context, form auth.ReactionForm) { "html": html, }) } + +func addParticipant(poster *models.User, participants []*models.User) []*models.User { + for _, part := range participants { + if poster.ID == part.ID { + return participants + } + } + return append(participants, poster) +}