##// END OF EJS Templates
code layout cleanup app/models/mail_handler.rb...
Toshi MARUYAMA -
r8625:5dd08133ef39
parent child
Show More
@@ -29,7 +29,9 class MailHandler < ActionMailer::Base
29 29
30 30 @@handler_options[:issue] ||= {}
31 31
32 @@handler_options[:allow_override] = @@handler_options[:allow_override].split(',').collect(&:strip) if @@handler_options[:allow_override].is_a?(String)
32 if @@handler_options[:allow_override].is_a?(String)
33 @@handler_options[:allow_override] = @@handler_options[:allow_override].split(',').collect(&:strip)
34 end
33 35 @@handler_options[:allow_override] ||= []
34 36 # Project needs to be overridable if not specified
35 37 @@handler_options[:allow_override] << 'project' unless @@handler_options[:issue].has_key?(:project)
@@ -47,12 +49,16 class MailHandler < ActionMailer::Base
47 49 sender_email = email.from.to_a.first.to_s.strip
48 50 # Ignore emails received from the application emission address to avoid hell cycles
49 51 if sender_email.downcase == Setting.mail_from.to_s.strip.downcase
50 logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" if logger && logger.info
52 if logger && logger.info
53 logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]"
54 end
51 55 return false
52 56 end
53 57 @user = User.find_by_mail(sender_email) if sender_email.present?
54 58 if @user && !@user.active?
55 logger.info "MailHandler: ignoring email from non-active user [#{@user.login}]" if logger && logger.info
59 if logger && logger.info
60 logger.info "MailHandler: ignoring email from non-active user [#{@user.login}]"
61 end
56 62 return false
57 63 end
58 64 if @user.nil?
@@ -63,15 +69,21 class MailHandler < ActionMailer::Base
63 69 when 'create'
64 70 @user = create_user_from_email
65 71 if @user
66 logger.info "MailHandler: [#{@user.login}] account created" if logger && logger.info
72 if logger && logger.info
73 logger.info "MailHandler: [#{@user.login}] account created"
74 end
67 75 Mailer.deliver_account_information(@user, @user.password)
68 76 else
69 logger.error "MailHandler: could not create account for [#{sender_email}]" if logger && logger.error
77 if logger && logger.error
78 logger.error "MailHandler: could not create account for [#{sender_email}]"
79 end
70 80 return false
71 81 end
72 82 else
73 83 # Default behaviour, emails from unknown users are ignored
74 logger.info "MailHandler: ignoring email from unknown user [#{sender_email}]" if logger && logger.info
84 if logger && logger.info
85 logger.info "MailHandler: ignoring email from unknown user [#{sender_email}]"
86 end
75 87 return false
76 88 end
77 89 end
@@ -149,7 +161,10 class MailHandler < ActionMailer::Base
149 161 return unless issue
150 162 # check permission
151 163 unless @@handler_options[:no_permission_check]
152 raise UnauthorizedAction unless user.allowed_to?(:add_issue_notes, issue.project) || user.allowed_to?(:edit_issues, issue.project)
164 unless user.allowed_to?(:add_issue_notes, issue.project) ||
165 user.allowed_to?(:edit_issues, issue.project)
166 raise UnauthorizedAction
167 end
153 168 end
154 169
155 170 # ignore CLI-supplied defaults for new issues
@@ -161,7 +176,9 class MailHandler < ActionMailer::Base
161 176 journal.notes = cleaned_up_text_body
162 177 add_attachments(issue)
163 178 issue.save!
164 logger.info "MailHandler: issue ##{issue.id} updated by #{user}" if logger && logger.info
179 if logger && logger.info
180 logger.info "MailHandler: issue ##{issue.id} updated by #{user}"
181 end
165 182 journal
166 183 end
167 184
@@ -192,7 +209,9 class MailHandler < ActionMailer::Base
192 209 add_attachments(reply)
193 210 reply
194 211 else
195 logger.info "MailHandler: ignoring reply from [#{sender_email}] to a locked topic" if logger && logger.info
212 if logger && logger.info
213 logger.info "MailHandler: ignoring reply from [#{sender_email}] to a locked topic"
214 end
196 215 end
197 216 end
198 217 end
@@ -241,8 +260,12 class MailHandler < ActionMailer::Base
241 260 def extract_keyword!(text, attr, format=nil)
242 261 keys = [attr.to_s.humanize]
243 262 if attr.is_a?(Symbol)
244 keys << l("field_#{attr}", :default => '', :locale => user.language) if user && user.language.present?
245 keys << l("field_#{attr}", :default => '', :locale => Setting.default_language) if Setting.default_language.present?
263 if user && user.language.present?
264 keys << l("field_#{attr}", :default => '', :locale => user.language)
265 end
266 if Setting.default_language.present?
267 keys << l("field_#{attr}", :default => '', :locale => Setting.default_language)
268 end
246 269 end
247 270 keys.reject! {|k| k.blank?}
248 271 keys.collect! {|k| Regexp.escape(k)}
@@ -388,10 +411,16 class MailHandler < ActionMailer::Base
388 411 keyword = keyword.to_s.downcase
389 412 assignable = issue.assignable_users
390 413 assignee = nil
391 assignee ||= assignable.detect {|a| a.mail.to_s.downcase == keyword || a.login.to_s.downcase == keyword}
414 assignee ||= assignable.detect {|a|
415 a.mail.to_s.downcase == keyword ||
416 a.login.to_s.downcase == keyword
417 }
392 418 if assignee.nil? && keyword.match(/ /)
393 419 firstname, lastname = *(keyword.split) # "First Last Throwaway"
394 assignee ||= assignable.detect {|a| a.is_a?(User) && a.firstname.to_s.downcase == firstname && a.lastname.to_s.downcase == lastname}
420 assignee ||= assignable.detect {|a|
421 a.is_a?(User) && a.firstname.to_s.downcase == firstname &&
422 a.lastname.to_s.downcase == lastname
423 }
395 424 end
396 425 if assignee.nil?
397 426 assignee ||= assignable.detect {|a| a.is_a?(Group) && a.name.downcase == keyword}
General Comments 0
You need to be logged in to leave comments. Login now