]> source.dussan.org Git - redmine.git/commitdiff
MailHandler raises NameError exception when generating error message (#35100).
authorGo MAEDA <maeda@farend.jp>
Thu, 22 Apr 2021 03:07:42 +0000 (03:07 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 22 Apr 2021 03:07:42 +0000 (03:07 +0000)
Patch by Dmitry Makurin and Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@20959 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mail_handler.rb
test/unit/mail_handler_test.rb

index 0fd7f10affc02e13eff098ec76bdf4a5fec74429..102cd8b759bb61d4311bcbf4f2fee520ea14cffe 100644 (file)
@@ -227,7 +227,7 @@ class MailHandler < ActionMailer::Base
     unless handler_options[:no_permission_check]
       unless user.allowed_to?(:add_issue_notes, issue.project) ||
                user.allowed_to?(:edit_issues, issue.project)
-        raise UnauthorizedAction, "not allowed to add notes on issues to project [#{project.name}]"
+        raise UnauthorizedAction, "not allowed to add notes on issues to project [#{issue.project.name}]"
       end
     end
 
@@ -276,7 +276,7 @@ class MailHandler < ActionMailer::Base
     end
 
     unless handler_options[:no_permission_check]
-      raise UnauthorizedAction, "not allowed to add messages to project [#{project.name}]" unless user.allowed_to?(:add_messages, message.project)
+      raise UnauthorizedAction, "not allowed to add messages to project [#{message.project.name}]" unless user.allowed_to?(:add_messages, message.project)
     end
 
     if !message.locked?
index 95baa3de148c044366271428f43b328385e8419f..836df11d62a3d9037bea05e0cbd961eb226f7f56 100644 (file)
@@ -1051,6 +1051,16 @@ class MailHandlerTest < ActiveSupport::TestCase
     end
   end
 
+  def test_reply_to_a_issue_without_permission
+    set_tmp_attachments_directory
+    Role.all.each {|r| r.remove_permission! :add_issue_notes, :edit_issues}
+    assert_no_difference 'Issue.count' do
+      assert_no_difference 'Journal.count' do
+        assert_not submit_email('ticket_reply_with_status.eml')
+      end
+    end
+  end
+
   def test_reply_to_a_nonexitent_journal
     journal_id = Issue.find(2).journals.last.id
     Journal.destroy(journal_id)
@@ -1102,6 +1112,13 @@ class MailHandlerTest < ActiveSupport::TestCase
     end
   end
 
+  def test_reply_to_a_topic_without_permission
+    Role.all.each {|r| r.remove_permission! :add_messages}
+    assert_no_difference('Message.count') do
+      assert_not submit_email('message_reply_by_subject.eml')
+    end
+  end
+
   def test_should_convert_tags_of_html_only_emails
     with_settings :text_formatting => 'textile' do
       issue = submit_email('ticket_html_only.eml', :issue => {:project => 'ecookbook'})