aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/mass_assignment_security
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-05-31 12:24:30 +0200
committerJosé Valim <jose.valim@gmail.com>2011-05-31 12:24:30 +0200
commit139a9f7011687d5bb9df940957cd726c75e361cc (patch)
tree0c88cb4f6cc6abd9c2477d9eadc3c398dbb6b042 /activemodel/lib/active_model/mass_assignment_security
parent16384351526bc5c4d064d6f4c720b8641acf125c (diff)
downloadrails-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')
-rw-r--r--activemodel/lib/active_model/mass_assignment_security/sanitizer.rb23
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