1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-23 02:38:35 +00:00

Ignore mentions for users with no access (#8395)

* Draft for ResolveMentionsByVisibility()

* Correct typo

* Resolve teams instead of orgs for mentions

* Create test for ResolveMentionsByVisibility

* Fix check for individual users and doer

* Test and fix team mentions

* Run all mentions through visibility filter

* Fix error check

* Simplify code, fix doer included in teams

* Simplify team id list build
This commit is contained in:
guillep2k
2019-10-10 13:45:11 -03:00
committed by Lauris BH
parent 57b0d9a38b
commit df2c11a878
5 changed files with 175 additions and 40 deletions

View File

@@ -123,11 +123,18 @@ func MailParticipants(issue *models.Issue, doer *models.User, opType models.Acti
}
func mailParticipants(ctx models.DBContext, issue *models.Issue, doer *models.User, opType models.ActionType) (err error) {
mentions := markup.FindAllMentions(issue.Content)
if err = models.UpdateIssueMentions(ctx, issue.ID, mentions); err != nil {
rawMentions := markup.FindAllMentions(issue.Content)
userMentions, err := issue.ResolveMentionsByVisibility(ctx, doer, rawMentions)
if err != nil {
return fmt.Errorf("ResolveMentionsByVisibility [%d]: %v", issue.ID, err)
}
if err = models.UpdateIssueMentions(ctx, issue.ID, userMentions); err != nil {
return fmt.Errorf("UpdateIssueMentions [%d]: %v", issue.ID, err)
}
mentions := make([]string, len(userMentions))
for i, u := range userMentions {
mentions[i] = u.LowerName
}
if len(issue.Content) > 0 {
if err = mailIssueCommentToParticipants(issue, doer, issue.Content, nil, mentions); err != nil {