Sha256: 5370515ca97403b6952191a0860437141b76b605fa7a79e7bce9c6abe41e6e3f

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

module Protector
  module ActiveRecord
    module Adapters
      module StrongParameters
        def self.sanitize!(args, is_new, meta)
          return if args[0].permitted?
          if is_new
            args[0] = args[0].permit(*meta.access[:create].keys) if meta.access.include? :create
          else
            args[0] = args[0].permit(*meta.access[:update].keys) if meta.access.include? :update
          end
        end

        # strong_parameters integration
        def sanitize_for_mass_assignment(*args)
          # We check only for updation here since the creation will be handled by relation
          # (see Protector::Adapters::ActiveRecord::Relation#new_with_protector and
          # Protector::Adapters::ActiveRecord::Relation#create_with_protector)
          if Protector.config.strong_parameters? && args.first.respond_to?(:permit) \
              && !new_record? && protector_subject?

            StrongParameters.sanitize! args, false, protector_meta
          end

          super
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
protector-0.7.7 lib/protector/adapters/active_record/strong_parameters.rb
protector-0.7.6 lib/protector/adapters/active_record/strong_parameters.rb
protector-0.7.4 lib/protector/adapters/active_record/strong_parameters.rb