]> source.dussan.org Git - redmine.git/commitdiff
Merged r16557 (#25713).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 27 May 2017 07:40:24 +0000 (07:40 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 27 May 2017 07:40:24 +0000 (07:40 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.2-stable@16567 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mailer.rb
test/unit/mailer_test.rb

index 0e51a095d97c9640b7acf4c652bb8e577e7ef7da..95a76a23eb8ea047437fab2fb969a996f407c731 100644 (file)
@@ -362,7 +362,10 @@ class Mailer < ActionMailer::Base
     end
 
     issues_by_assignee.each do |assignee, issues|
-      reminder(assignee, issues, days).deliver if assignee.is_a?(User) && assignee.active?
+      if assignee.is_a?(User) && assignee.active? && issues.present?
+        visible_issues = issues.select {|i| i.visible?(assignee)}
+        reminder(assignee, visible_issues, days).deliver if visible_issues.present?
+      end
     end
   end
 
index 93b7a8196f16310fad665cc8b7fa64a3934cfbda..cd848936092a82ffe5d4f71f684a4922152665ed 100644 (file)
@@ -666,6 +666,25 @@ class MailerTest < ActiveSupport::TestCase
     end
   end
 
+  def test_reminders_should_only_include_issues_the_user_can_see
+    with_settings :default_language => 'en' do
+      user = User.find(3)
+      member = Member.create!(:project_id => 2, :principal => user, :role_ids => [1])
+      Issue.create!(:project_id => 2, :tracker_id => 1, :status_id => 1,
+                      :subject => 'Issue dlopper should not see', :assigned_to_id => 3,
+                      :due_date => 5.days.from_now,
+                      :author_id => 2)
+      member.destroy
+      ActionMailer::Base.deliveries.clear
+
+      Mailer.reminders(:days => 42)
+      assert_equal 1, ActionMailer::Base.deliveries.size
+      mail = last_email
+      assert mail.bcc.include?('dlopper@somenet.foo')
+      assert_mail_body_no_match 'Issue dlopper should not see', mail
+    end
+  end
+
   def test_mailer_should_not_change_locale
     # Set current language to italian
     set_language_if_valid 'it'