diff options
author | Fabio Yamate <fabioyamate@gmail.com> | 2012-02-14 16:27:19 -0200 |
---|---|---|
committer | Fabio Yamate <fabioyamate@gmail.com> | 2012-02-15 11:13:54 -0200 |
commit | d204918f9190afcf5f3f53adb957ca15aa644704 (patch) | |
tree | c19d64490782c36770979f59129baaf19ff08447 /activemodel/test/cases | |
parent | 2f9e47713051e211a1866bb8e7af3151e70a9ba0 (diff) | |
download | rails-d204918f9190afcf5f3f53adb957ca15aa644704.tar.gz rails-d204918f9190afcf5f3f53adb957ca15aa644704.tar.bz2 rails-d204918f9190afcf5f3f53adb957ca15aa644704.zip |
Fix sanitize_for_mass_assigment when role is nil
There is an example in Rails documentation that suggests implementing
assign_attributes method for ActiveModel interface, that by default
sends option role with nil. Since mass_assignment_authorizer never
is called without args, we can move the default value internally.
Diffstat (limited to 'activemodel/test/cases')
-rw-r--r-- | activemodel/test/cases/mass_assignment_security_test.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activemodel/test/cases/mass_assignment_security_test.rb b/activemodel/test/cases/mass_assignment_security_test.rb index be07e59a2f..a197dbe748 100644 --- a/activemodel/test/cases/mass_assignment_security_test.rb +++ b/activemodel/test/cases/mass_assignment_security_test.rb @@ -19,6 +19,13 @@ class MassAssignmentSecurityTest < ActiveModel::TestCase assert_equal expected, sanitized end + def test_attribute_protection_when_role_is_nil + user = User.new + expected = { "name" => "John Smith", "email" => "john@smith.com" } + sanitized = user.sanitize_for_mass_assignment(expected.merge("admin" => true), nil) + assert_equal expected, sanitized + end + def test_only_moderator_role_attribute_accessible user = SpecialUser.new expected = { "name" => "John Smith", "email" => "john@smith.com" } |