diff --git a/app/models/user.rb b/app/models/user.rb index b5bb6ae..76e9bea 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 df0e79f..bf78420 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 = []