##// END OF EJS Templates
Moved implementation to Principal....
Jean-Philippe Lang -
r14118:eac2974e715b
parent child
Show More
@@ -543,26 +543,6 class MailHandler < ActionMailer::Base
543 end
543 end
544
544
545 def find_assignee_from_keyword(keyword, issue)
545 def find_assignee_from_keyword(keyword, issue)
546 keyword = keyword.to_s
546 Principal.detect_by_keyword(issue.assignable_users, keyword)
547 return nil if keyword.blank?
548
549 assignable = issue.assignable_users
550 assignee = nil
551 assignee ||= assignable.detect {|a|
552 keyword.casecmp(a.mail.to_s) == 0 ||
553 keyword.casecmp(a.login.to_s) == 0
554 }
555 if assignee.nil? && keyword.match(/ /)
556 firstname, lastname = *(keyword.split) # "First Last Throwaway"
557 assignee ||= assignable.detect {|a|
558 a.is_a?(User) &&
559 firstname.casecmp(a.firstname.to_s) == 0 &&
560 lastname.casecmp(a.lastname.to_s) == 0
561 }
562 end
563 if assignee.nil?
564 assignee ||= assignable.detect {|a| keyword.casecmp(a.name) == 0}
565 end
566 assignee
567 end
547 end
568 end
548 end
@@ -146,6 +146,30 class Principal < ActiveRecord::Base
146 columns.uniq.map {|field| "#{table}.#{field}"}
146 columns.uniq.map {|field| "#{table}.#{field}"}
147 end
147 end
148
148
149 # Returns the principal that matches the keyword among principals
150 def self.detect_by_keyword(principals, keyword)
151 keyword = keyword.to_s
152 return nil if keyword.blank?
153
154 principal = nil
155 principal ||= principals.detect {|a|
156 keyword.casecmp(a.mail.to_s) == 0 ||
157 keyword.casecmp(a.login.to_s) == 0
158 }
159 if principal.nil? && keyword.match(/ /)
160 firstname, lastname = *(keyword.split) # "First Last Throwaway"
161 principal ||= principals.detect {|a|
162 a.is_a?(User) &&
163 firstname.casecmp(a.firstname.to_s) == 0 &&
164 lastname.casecmp(a.lastname.to_s) == 0
165 }
166 end
167 if principal.nil?
168 principal ||= principals.detect {|a| keyword.casecmp(a.name) == 0}
169 end
170 principal
171 end
172
149 protected
173 protected
150
174
151 # Make sure we don't try to insert NULL values (see #4632)
175 # Make sure we don't try to insert NULL values (see #4632)
General Comments 0
You need to be logged in to leave comments. Login now