Sha256: b6bc4c1a0a7612b755c79bf5b496e6ed17d67df3175356366fe19d8f999adbf8

Contents?: true

Size: 768 Bytes

Versions: 68

Compression:

Stored size: 768 Bytes

Contents

# frozen_string_literal: true

#
# A mixin for models with secure fields.
# Basically if the secure field is blank, nil or "", then delete it from the update.
#
module SecureFields
  extend ActiveSupport::Concern
  #
  # Remove updates for secure fields
  #
  def update(params)
    super(filter_secure_fields(params))
  end

  #
  # Remove updates for secure fields
  #
  def update!(params)
    super(filter_secure_fields(params))
  end

  #
  # Remove updates for secure fields
  #
  def assign_attributes(params)
    super(filter_secure_fields(params))
  end

  #
  # List of secure fields
  #
  def secure_fields
    []
  end

  def filter_secure_fields(params)
    secure_fields.each { |field| params.delete(field) if params[field].blank? }
    params
  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
web47core-3.2.20 lib/app/models/concerns/secure_fields.rb
web47core-3.2.19 lib/app/models/concerns/secure_fields.rb
web47core-3.2.18 lib/app/models/concerns/secure_fields.rb
web47core-3.2.17 lib/app/models/concerns/secure_fields.rb
web47core-3.2.16 lib/app/models/concerns/secure_fields.rb
web47core-3.2.15 lib/app/models/concerns/secure_fields.rb
web47core-3.2.14 lib/app/models/concerns/secure_fields.rb
web47core-3.2.13 lib/app/models/concerns/secure_fields.rb
web47core-3.2.12 lib/app/models/concerns/secure_fields.rb
web47core-3.2.9 lib/app/models/concerns/secure_fields.rb
web47core-3.2.8 lib/app/models/concerns/secure_fields.rb
web47core-3.2.7 lib/app/models/concerns/secure_fields.rb
web47core-3.2.6 lib/app/models/concerns/secure_fields.rb
web47core-3.2.5 lib/app/models/concerns/secure_fields.rb
web47core-3.2.4 lib/app/models/concerns/secure_fields.rb
web47core-2.2.20 lib/app/models/concerns/secure_fields.rb
web47core-2.2.19 lib/app/models/concerns/secure_fields.rb
web47core-3.2.3 lib/app/models/concerns/secure_fields.rb
web47core-3.2.2 lib/app/models/concerns/secure_fields.rb
web47core-2.2.15 lib/app/models/concerns/secure_fields.rb