diff options
author | José Valim <jose.valim@gmail.com> | 2011-05-31 12:24:30 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-05-31 12:24:30 +0200 |
commit | 139a9f7011687d5bb9df940957cd726c75e361cc (patch) | |
tree | 0c88cb4f6cc6abd9c2477d9eadc3c398dbb6b042 /activemodel/lib/active_model/mass_assignment_security/sanitizer.rb | |
parent | 16384351526bc5c4d064d6f4c720b8641acf125c (diff) | |
download | rails-139a9f7011687d5bb9df940957cd726c75e361cc.tar.gz rails-139a9f7011687d5bb9df940957cd726c75e361cc.tar.bz2 rails-139a9f7011687d5bb9df940957cd726c75e361cc.zip |
Transform the symbol into a constant lookup.
Diffstat (limited to 'activemodel/lib/active_model/mass_assignment_security/sanitizer.rb')
-rw-r--r-- | activemodel/lib/active_model/mass_assignment_security/sanitizer.rb | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/activemodel/lib/active_model/mass_assignment_security/sanitizer.rb b/activemodel/lib/active_model/mass_assignment_security/sanitizer.rb index 4dfff050a8..ee43a6694f 100644 --- a/activemodel/lib/active_model/mass_assignment_security/sanitizer.rb +++ b/activemodel/lib/active_model/mass_assignment_security/sanitizer.rb @@ -1,6 +1,11 @@ +require 'active_support/core_ext/module/delegation' + module ActiveModel module MassAssignmentSecurity class Sanitizer + def initialize(target=nil) + end + # Returns all attributes not denied by the authorizer. def sanitize(attributes, authorizer) sanitized_attributes = attributes.reject { |key, value| authorizer.deny?(key) } @@ -18,19 +23,22 @@ module ActiveModel def process_removed_attributes(attrs) raise NotImplementedError, "#process_removed_attributes(attrs) suppose to be overwritten" end - end + class LoggerSanitizer < Sanitizer + delegate :logger, :to => :@target - attr_accessor :logger + def initialize(target) + @target = target + super + end - def initialize(logger = nil) - self.logger = logger - super() + def logger? + @target.respond_to?(:logger) && @target.logger end - + def process_removed_attributes(attrs) - self.logger.debug "WARNING: Can't mass-assign protected attributes: #{attrs.join(', ')}" if self.logger + logger.debug "WARNING: Can't mass-assign protected attributes: #{attrs.join(', ')}" if logger? end end @@ -42,6 +50,5 @@ module ActiveModel class Error < StandardError end - end end |