##// END OF EJS Templates
MailHandler: ignore assignee if invalid....
Jean-Philippe Lang -
r4290:d7cdd58db6b8
parent child
Show More
@@ -253,12 +253,15 class MailHandler < ActionMailer::Base
253
253
254 # Returns a Hash of issue attributes extracted from keywords in the email body
254 # Returns a Hash of issue attributes extracted from keywords in the email body
255 def issue_attributes_from_keywords(issue)
255 def issue_attributes_from_keywords(issue)
256 assigned_to = (k = get_keyword(:assigned_to, :override => true)) && find_user_from_keyword(k)
257 assigned_to = nil if assigned_to && !issue.assignable_users.include?(assigned_to)
258
256 {
259 {
257 'tracker_id' => ((k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id)) || issue.project.trackers.find(:first).try(:id),
260 'tracker_id' => ((k = get_keyword(:tracker)) && issue.project.trackers.find_by_name(k).try(:id)) || issue.project.trackers.find(:first).try(:id),
258 'status_id' => (k = get_keyword(:status)) && IssueStatus.find_by_name(k).try(:id),
261 'status_id' => (k = get_keyword(:status)) && IssueStatus.find_by_name(k).try(:id),
259 'priority_id' => (k = get_keyword(:priority)) && IssuePriority.find_by_name(k).try(:id),
262 'priority_id' => (k = get_keyword(:priority)) && IssuePriority.find_by_name(k).try(:id),
260 'category_id' => (k = get_keyword(:category)) && issue.project.issue_categories.find_by_name(k).try(:id),
263 'category_id' => (k = get_keyword(:category)) && issue.project.issue_categories.find_by_name(k).try(:id),
261 'assigned_to_id' => (k = get_keyword(:assigned_to, :override => true)) && find_user_from_keyword(k).try(:id),
264 'assigned_to_id' => assigned_to.try(:id),
262 'fixed_version_id' => (k = get_keyword(:fixed_version, :override => true)) && issue.project.shared_versions.find_by_name(k).try(:id),
265 'fixed_version_id' => (k = get_keyword(:fixed_version, :override => true)) && issue.project.shared_versions.find_by_name(k).try(:id),
263 'start_date' => get_keyword(:start_date, :override => true, :format => '\d{4}-\d{2}-\d{2}'),
266 'start_date' => get_keyword(:start_date, :override => true, :format => '\d{4}-\d{2}-\d{2}'),
264 'due_date' => get_keyword(:due_date, :override => true, :format => '\d{4}-\d{2}-\d{2}'),
267 'due_date' => get_keyword(:due_date, :override => true, :format => '\d{4}-\d{2}-\d{2}'),
@@ -40,6 +40,7 pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
40 Project: onlinestore
40 Project: onlinestore
41 Tracker: Feature request
41 Tracker: Feature request
42 category: Stock management
42 category: Stock management
43 assigned to: miscuser9@foo.bar
43 priority: foo
44 priority: foo
44 done ratio: x
45 done ratio: x
45 start date: some day
46 start date: some day
@@ -25,6 +25,7 class MailHandlerTest < ActiveSupport::TestCase
25 :roles,
25 :roles,
26 :members,
26 :members,
27 :member_roles,
27 :member_roles,
28 :users,
28 :issues,
29 :issues,
29 :issue_statuses,
30 :issue_statuses,
30 :workflows,
31 :workflows,
@@ -234,6 +235,7 class MailHandlerTest < ActiveSupport::TestCase
234 assert issue.is_a?(Issue)
235 assert issue.is_a?(Issue)
235 assert !issue.new_record?
236 assert !issue.new_record?
236 issue.reload
237 issue.reload
238 assert_nil issue.assigned_to
237 assert_nil issue.start_date
239 assert_nil issue.start_date
238 assert_nil issue.due_date
240 assert_nil issue.due_date
239 assert_equal 0, issue.done_ratio
241 assert_equal 0, issue.done_ratio
General Comments 0
You need to be logged in to leave comments. Login now