##// END OF EJS Templates
Adds To and Cc as watchers when submitting an issue by email (#2245)....
Jean-Philippe Lang -
r2075:84e70634fbd0
parent child
Show More
@@ -0,0 +1,40
1 Return-Path: <JSmith@somenet.foo>
2 Received: from osiris ([127.0.0.1])
3 by OSIRIS
4 with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
5 Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
6 From: "John Smith" <JSmith@somenet.foo>
7 To: <redmine@somenet.foo>
8 Cc: <DLopper@somenet.foo>
9 Subject: New ticket on a given project
10 Date: Sun, 22 Jun 2008 12:28:07 +0200
11 MIME-Version: 1.0
12 Content-Type: text/plain;
13 format=flowed;
14 charset="iso-8859-1";
15 reply-type=original
16 Content-Transfer-Encoding: 7bit
17 X-Priority: 3
18 X-MSMail-Priority: Normal
19 X-Mailer: Microsoft Outlook Express 6.00.2900.2869
20 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
21
22 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
23 turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
24 blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
25 sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
26 in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
27 sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
28 id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
29 eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
30 sed, mauris. Pellentesque habitant morbi tristique senectus et netus et
31 malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
32 platea dictumst.
33
34 Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
35 sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
36 Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
37 dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
38 massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
39 pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
40
@@ -92,7 +92,11 class MailHandler < ActionMailer::Base
92 92 issue.save!
93 93 add_attachments(issue)
94 94 logger.info "MailHandler: issue ##{issue.id} created by #{user}" if logger && logger.info
95 # send notification before adding watchers since they were cc'ed
95 96 Mailer.deliver_issue_add(issue) if Setting.notified_events.include?('issue_added')
97 # add To and Cc as watchers
98 add_watchers(issue)
99
96 100 issue
97 101 end
98 102
@@ -139,6 +143,18 class MailHandler < ActionMailer::Base
139 143 end
140 144 end
141 145
146 # Adds To and Cc as watchers of the given object if the sender has the
147 # appropriate permission
148 def add_watchers(obj)
149 if user.allowed_to?("add_#{obj.class.name.underscore}_watchers".to_sym, obj.project)
150 addresses = [email.to, email.cc].flatten.compact.uniq.collect {|a| a.strip.downcase}
151 unless addresses.empty?
152 watchers = User.find_active(:all, :conditions => ['LOWER(mail) IN (?)', addresses])
153 watchers.each {|w| obj.add_watcher(w)}
154 end
155 end
156 end
157
142 158 def get_keyword(attr)
143 159 if @@handler_options[:allow_override].include?(attr.to_s) && email.plain_text_body =~ /^#{attr}:[ \t]*(.+)$/i
144 160 $1.strip
@@ -23,6 +23,8 class MailHandlerTest < Test::Unit::TestCase
23 23 :roles,
24 24 :members,
25 25 :issues,
26 :issue_statuses,
27 :workflows,
26 28 :trackers,
27 29 :projects_trackers,
28 30 :enumerations,
@@ -100,6 +102,15 class MailHandlerTest < Test::Unit::TestCase
100 102 assert_equal 10790, issue.attachments.first.filesize
101 103 end
102 104
105 def test_add_issue_with_cc
106 issue = submit_email('ticket_with_cc.eml', :issue => {:project => 'ecookbook'})
107 assert issue.is_a?(Issue)
108 assert !issue.new_record?
109 issue.reload
110 assert issue.watched_by?(User.find_by_mail('dlopper@somenet.foo'))
111 assert_equal 1, issue.watchers.size
112 end
113
103 114 def test_add_issue_note
104 115 journal = submit_email('ticket_reply.eml')
105 116 assert journal.is_a?(Journal)
General Comments 0
You need to be logged in to leave comments. Login now