From 827ab38725d712a9bc2df875e203057713069dd8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 22 Nov 2014 10:56:59 +0000 Subject: [PATCH] Selected projects in email notifications on "my account" are lost when the page is redisplayed after a validation error (#18060). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by Felix Schäfer. git-svn-id: http://svn.redmine.org/redmine/trunk@13638 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/user.rb | 2 +- test/unit/user_test.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index b5bb6ae1e..76e9beac6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -368,7 +368,7 @@ class User < Principal def notified_project_ids=(ids) @notified_projects_ids_changed = true - @notified_projects_ids = ids + @notified_projects_ids = ids.map(&:to_i).uniq.select {|n| n > 0} end # Updates per project notifications (after_save callback) diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index df0e79f18..bf784200f 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -948,6 +948,11 @@ class UserTest < ActiveSupport::TestCase assert_equal 6, User.valid_notification_options(User.find(2)).size end + def test_notified_project_ids_setter_should_coerce_to_unique_integer_array + @jsmith.notified_project_ids = ["1", "123", "2u", "wrong", "12", 6, 12, -35, ""] + assert_equal [1, 123, 2, 12, 6], @jsmith.notified_projects_ids + end + def test_mail_notification_all @jsmith.mail_notification = 'all' @jsmith.notified_project_ids = [] -- 2.39.5