Skip to content

Commit b073982

Browse files
committed
Locked users in a group receive notifications when the group is added as a watcher (#4511, #33935).
Patch by Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@19998 e93f8b46-1217-0410-a6f0-8f06a7374b81
1 parent 2ee6a7c commit b073982

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

lib/plugins/acts_as_watchable/lib/acts_as_watchable.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def watched_by?(user)
7373

7474
def notified_watchers
7575
notified = watcher_users.active.to_a
76-
notified = notified.map {|n| n.is_a?(Group) ? n.users : n}.flatten
76+
notified = notified.map {|n| n.is_a?(Group) ? n.users.active : n}.flatten
7777
notified.uniq!
7878
notified.reject! {|user| user.mail.blank? || user.mail_notification == 'none'}
7979
if respond_to?(:visible?)

test/unit/mailer_test.rb

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ class MailerTest < ActiveSupport::TestCase
3030
:issue_statuses, :enumerations, :messages, :boards, :repositories,
3131
:wikis, :wiki_pages, :wiki_contents, :wiki_content_versions,
3232
:versions,
33-
:comments
33+
:comments,
34+
:groups_users, :watchers
3435

3536
def setup
3637
ActionMailer::Base.deliveries.clear
@@ -602,6 +603,24 @@ def test_issue_should_send_email_notification_with_suppress_empty_fields
602603
end
603604
end
604605

606+
def test_locked_user_in_group_watcher_should_not_be_notified
607+
locked_user = users(:users_005)
608+
group = Group.generate!
609+
group.users << locked_user
610+
issue = Issue.generate!
611+
Watcher.create!(:watchable => issue, :user => group)
612+
613+
ActionMailer::Base.deliveries.clear
614+
assert Mailer.deliver_issue_add(issue)
615+
assert_not_include locked_user.mail, recipients
616+
617+
journal = issue.init_journal(User.current)
618+
issue.update(:status_id => 4)
619+
ActionMailer::Base.deliveries.clear
620+
Mailer.deliver_issue_edit(journal)
621+
assert_not_include locked_user.mail, recipients
622+
end
623+
605624
def test_version_file_added
606625
attachements = [ Attachment.find_by_container_type('Version') ]
607626
assert Mailer.deliver_attachments_added(attachements)

0 commit comments

Comments
 (0)