]> source.dussan.org Git - redmine.git/commitdiff
Mail handler bypasses add_issue_notes permission (#35045).
authorGo MAEDA <maeda@farend.jp>
Sun, 25 Apr 2021 13:02:13 +0000 (13:02 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 25 Apr 2021 13:02:13 +0000 (13:02 +0000)
Patch by Marius BALTEANU.

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

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

index 102cd8b759bb61d4311bcbf4f2fee520ea14cffe..fd2e25fb5184a4ce6323ba476de6460eb0c832d3 100644 (file)
@@ -225,8 +225,7 @@ class MailHandler < ActionMailer::Base
 
     # check permission
     unless handler_options[:no_permission_check]
-      unless user.allowed_to?(:add_issue_notes, issue.project) ||
-               user.allowed_to?(:edit_issues, issue.project)
+      unless issue.notes_addable?
         raise UnauthorizedAction, "not allowed to add notes on issues to project [#{issue.project.name}]"
       end
     end
index 836df11d62a3d9037bea05e0cbd961eb226f7f56..3fd3ce07221fd9c0b1b8d3e10a3f21e47bc19c31 100644 (file)
@@ -1051,9 +1051,11 @@ class MailHandlerTest < ActiveSupport::TestCase
     end
   end
 
-  def test_reply_to_a_issue_without_permission
+  def test_reply_to_an_issue_without_permission
     set_tmp_attachments_directory
-    Role.all.each {|r| r.remove_permission! :add_issue_notes, :edit_issues}
+    # "add_issue_notes" permission is explicit required to allow users to add notes
+    # "edit_issue" permission no longer includes the "add_issue_notes" permission
+    Role.all.each {|r| r.remove_permission! :add_issue_notes}
     assert_no_difference 'Issue.count' do
       assert_no_difference 'Journal.count' do
         assert_not submit_email('ticket_reply_with_status.eml')