Skip to content

Instantly share code, notes, and snippets.

@xhocquet
Created July 17, 2019 20:22
Show Gist options
  • Save xhocquet/109ac3a099bdc5d58ef74c8298e05692 to your computer and use it in GitHub Desktop.
Save xhocquet/109ac3a099bdc5d58ef74c8298e05692 to your computer and use it in GitHub Desktop.
module ActionController
class Parameters
private
def unpermitted_parameters!(params)
unpermitted_keys = unpermitted_keys(params)
if unpermitted_keys.any?
case self.class.action_on_unpermitted_parameters
when :log
name = "unpermitted_parameters.action_controller"
::ActiveSupport::Notifications.instrument(
name,
keys: unpermitted_keys,
action: self["action"],
controller: self["controller"],
)
when :raise
raise ::ActionController::UnpermittedParameters.new(unpermitted_keys)
end
end
end
end
end
::ActionController::Parameters.action_on_unpermitted_parameters = :log
::ActiveSupport::Notifications.subscribe "unpermitted_parameters.action_controller" do |*args|
event = ::ActiveSupport::Notifications::Event.new(*args)
unless Rails.env.test? do
::Logger.info(
event: "UNPERMITTED_PARAMETERS",
action: event.payload[:action],
controller: event.payload[:controller],
keys: event.payload[:keys],
)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment