From 0c19c9394fab884f5d6f3e1a4ae58eaa4f75dc91 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 27 May 2017 07:40:13 +0000 Subject: [PATCH] Merged r16557 (#25713). git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@16566 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/mailer.rb | 5 ++++- test/unit/mailer_test.rb | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index fe0279240..f6b16b9f2 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -406,7 +406,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 diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index 8f9763288..3ec758a9b 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -662,6 +662,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_security_notification set_language_if_valid User.find(1).language with_settings :emails_footer => "footer without link" do -- 2.39.5