summaryrefslogtreecommitdiffstats
path: root/app/models/mail_handler.rb
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2023-03-26 05:11:26 +0000
committerGo MAEDA <maeda@farend.jp>2023-03-26 05:11:26 +0000
commit79f0c64e29791b7b4084e1c35c3a889be7ff06ba (patch)
tree2a1359f7983a4efc341a475277107ed295bb1787 /app/models/mail_handler.rb
parent0fb007cc029cca7ddb97a00e76180052b1ed0230 (diff)
downloadredmine-79f0c64e29791b7b4084e1c35c3a889be7ff06ba.tar.gz
redmine-79f0c64e29791b7b4084e1c35c3a889be7ff06ba.zip
Add MissingContainer exception to MailHandler (#38273).
Patch by Felix Schäfer. git-svn-id: https://svn.redmine.org/redmine/trunk@22158 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/mail_handler.rb')
-rw-r--r--app/models/mail_handler.rb13
1 files changed, 7 insertions, 6 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index 5925608bd..738feb30e 100644
--- a/app/models/mail_handler.rb
+++ b/app/models/mail_handler.rb
@@ -25,6 +25,7 @@ class MailHandler < ActionMailer::Base
class NotAllowedInProject < UnauthorizedAction; end
class InsufficientPermissions < UnauthorizedAction; end
class MissingInformation < StandardError; end
+ class MissingContainer < StandardError; end
attr_reader :email, :user, :handler_options
@@ -172,6 +173,9 @@ class MailHandler < ActionMailer::Base
rescue MissingInformation => e
logger&.error "MailHandler: missing information from #{user}: #{e.message}"
false
+ rescue MissingContainer => e
+ logger&.error "MailHandler: reply to nonexistant object from #{user}: #{e.message}"
+ false
rescue UnauthorizedAction => e
logger&.error "MailHandler: unauthorized attempt from #{user}: #{e.message}"
false
@@ -225,8 +229,7 @@ class MailHandler < ActionMailer::Base
def receive_issue_reply(issue_id, from_journal=nil)
issue = Issue.find_by(:id => issue_id)
if issue.nil?
- logger&.info "MailHandler: ignoring reply from [#{email.from.first}] to a nonexistent issue"
- return nil
+ raise MissingContainer, "reply to nonexistant issue [##{issue_id}]"
end
# Never receive emails to projects where adding issue notes is not possible
@@ -270,8 +273,7 @@ class MailHandler < ActionMailer::Base
logger&.info "MailHandler: reply to a nonexistant journal, calling receive_issue_reply with issue from subject"
receive_issue_reply(m[1].to_i)
else
- logger&.info "MailHandler: ignoring reply to a nonexistant journal or issue"
- return nil
+ raise MissingContainer, "reply to nonexistant journal [#{journal_id}]"
end
end
@@ -279,8 +281,7 @@ class MailHandler < ActionMailer::Base
def receive_message_reply(message_id)
message = Message.find_by(:id => message_id)&.root
if message.nil?
- logger&.info "MailHandler: ignoring reply from [#{email.from.first}] to a nonexistent message"
- return nil
+ raise MissingContainer, "reply to nonexistant message [#{message_id}]"
end
# Never receive emails to projects where adding messages is not possible