summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorGyőrvári Gábor <scr34m@gmail.com>2017-06-23 15:43:37 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-06-23 21:43:37 +0800
commitf2afed3098973eb70ecf61c7e3bf7203bf3f592a (patch)
tree04b62b92a0efb24c26e711478010f9f46b7b973c /models
parent09cb9991458dd56e2ac5df22b82ead563dbaa50f (diff)
downloadgitea-f2afed3098973eb70ecf61c7e3bf7203bf3f592a.tar.gz
gitea-f2afed3098973eb70ecf61c7e3bf7203bf3f592a.zip
Enable assignee e-mail notification (#2003)
* Enable assignee e-mail notification * Check assignee and doer to avoid self made comment notifications. * Assignee not always defined * New method to avoid error when assignee deleted * Assignee empty check
Diffstat (limited to 'models')
-rw-r--r--models/issue.go23
-rw-r--r--models/issue_mail.go5
2 files changed, 23 insertions, 5 deletions
diff --git a/models/issue.go b/models/issue.go
index 0989e3e195..e2e53b06fa 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -131,6 +131,22 @@ func (issue *Issue) loadPoster(e Engine) (err error) {
return
}
+func (issue *Issue) loadAssignee(e Engine) (err error) {
+ if issue.Assignee == nil {
+ issue.Assignee, err = getUserByID(e, issue.AssigneeID)
+ if err != nil {
+ issue.AssigneeID = -1
+ issue.Assignee = NewGhostUser()
+ if !IsErrUserNotExist(err) {
+ return fmt.Errorf("getUserByID.(assignee) [%d]: %v", issue.AssigneeID, err)
+ }
+ err = nil
+ return
+ }
+ }
+ return
+}
+
func (issue *Issue) loadAttributes(e Engine) (err error) {
if err = issue.loadRepo(e); err != nil {
return
@@ -151,11 +167,8 @@ func (issue *Issue) loadAttributes(e Engine) (err error) {
}
}
- if issue.Assignee == nil && issue.AssigneeID > 0 {
- issue.Assignee, err = getUserByID(e, issue.AssigneeID)
- if err != nil {
- return fmt.Errorf("getUserByID.(assignee) [%d]: %v", issue.AssigneeID, err)
- }
+ if err = issue.loadAssignee(e); err != nil {
+ return
}
if issue.IsPull && issue.PullRequest == nil {
diff --git a/models/issue_mail.go b/models/issue_mail.go
index 615aa82f06..b9e1a69fc2 100644
--- a/models/issue_mail.go
+++ b/models/issue_mail.go
@@ -42,6 +42,11 @@ func mailIssueCommentToParticipants(issue *Issue, doer *User, comment *Comment,
participants = append(participants, issue.Poster)
}
+ // Assignee must receive any communications
+ if issue.Assignee != nil && issue.AssigneeID > 0 && issue.AssigneeID != doer.ID {
+ participants = append(participants, issue.Assignee)
+ }
+
tos := make([]string, 0, len(watchers)) // List of email addresses.
names := make([]string, 0, len(watchers))
for i := range watchers {