aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_assignment.rb
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-06-15 16:01:38 +0100
committerJon Leighton <j@jonathanleighton.com>2012-06-15 19:15:37 +0100
commita205bf878084d74872fbad45fac030ad2cb74970 (patch)
treec36b54603a81c71a0e4ec33686e62ee8d55654d2 /activerecord/lib/active_record/attribute_assignment.rb
parente030f26ad3de98205edec9d8b59ecca9508cb57d (diff)
downloadrails-a205bf878084d74872fbad45fac030ad2cb74970.tar.gz
rails-a205bf878084d74872fbad45fac030ad2cb74970.tar.bz2
rails-a205bf878084d74872fbad45fac030ad2cb74970.zip
Fix config.active_record.whitelist_attributes with AR::Model
Diffstat (limited to 'activerecord/lib/active_record/attribute_assignment.rb')
-rw-r--r--activerecord/lib/active_record/attribute_assignment.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/attribute_assignment.rb b/activerecord/lib/active_record/attribute_assignment.rb
index abc2fa546a..269fc3e381 100644
--- a/activerecord/lib/active_record/attribute_assignment.rb
+++ b/activerecord/lib/active_record/attribute_assignment.rb
@@ -1,11 +1,24 @@
require 'active_support/concern'
module ActiveRecord
+ ActiveSupport.on_load(:active_record_config) do
+ mattr_accessor :whitelist_attributes, instance_accessor: false
+ end
+
module AttributeAssignment
extend ActiveSupport::Concern
include ActiveModel::MassAssignmentSecurity
+ included do
+ attr_accessible(nil) if Model.whitelist_attributes
+ end
+
module ClassMethods
+ def inherited(child) # :nodoc:
+ child.attr_accessible(nil) if Model.whitelist_attributes
+ super
+ end
+
private
# The primary key and inheritance column can never be set by mass-assignment for security reasons.