module Sequel::Plugins::WhitelistSecurity::InstanceMethods
Public Instance Methods
set_all(hash)
click to toggle source
Set all values using the entries in the hash, ignoring any setting of allowed_columns in the model.
Artist.set_allowed_columns(:num_albums) artist.set_all(name: 'Jim') artist.name # => 'Jim'
# File lib/sequel/plugins/whitelist_security.rb, line 66 def set_all(hash) set_restricted(hash, :all) end
set_only(hash, *only)
click to toggle source
Set the values using the entries in the hash, only if the key is included
in only. It may be a better idea to use set_fields
instead of
this method.
artist.set_only({name: 'Jim'}, :name) artist.name # => 'Jim' artist.set_only({hometown: 'LA'}, :name) # Raise Error
# File lib/sequel/plugins/whitelist_security.rb, line 78 def set_only(hash, *only) set_restricted(hash, only.flatten) end
update_all(hash)
click to toggle source
Update all values using the entries in the hash, ignoring any setting of
allowed_columns
in the model.
Artist.set_allowed_columns(:num_albums) artist.update_all(name: 'Jim') # UPDATE artists SET name = 'Jim' WHERE (id = 1)
# File lib/sequel/plugins/whitelist_security.rb, line 87 def update_all(hash) update_restricted(hash, :all) end
update_only(hash, *only)
click to toggle source
Update the values using the entries in the hash, only if the key is
included in only. It may be a better idea to use
update_fields
instead of this method.
artist.update_only({name: 'Jim'}, :name) # UPDATE artists SET name = 'Jim' WHERE (id = 1) artist.update_only({hometown: 'LA'}, :name) # Raise Error
# File lib/sequel/plugins/whitelist_security.rb, line 99 def update_only(hash, *only) update_restricted(hash, only.flatten) end
Private Instance Methods
setter_methods(type)
click to toggle source
If allowed_columns is set and set/update is called, only allow those columns.
Calls superclass method
# File lib/sequel/plugins/whitelist_security.rb, line 106 def setter_methods(type) if type == :default && model.allowed_columns model.setter_methods elsif type.is_a?(Array) type.map{|x| "#{x}="} elsif type == :all && primary_key && model.restrict_primary_key? super + Array(primary_key).map{|x| "#{x}="} else super end end