Skip to content

Commit

Permalink
Devise 4.6 allows passwords to be cleaned, keep existing behavior of …
Browse files Browse the repository at this point in the history
…skip-if-blank

heartcombo/devise@3aedbf0
  • Loading branch information
mshibuya committed Feb 9, 2019
1 parent 0b75e14 commit 72bc037
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 8 deletions.
2 changes: 1 addition & 1 deletion gemfiles/cancan.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 5.1.0"
gem "haml"
gem "devise", "~> 4.0", '< 4.6'
gem "devise", "~> 4.0"
gem "sass-rails", "~> 5.0"

group :active_record do
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/rails_4.1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 4.1.0"
gem "haml"
gem "devise", ">= 3.2", '< 4.6'
gem "devise", ">= 3.2"
gem "capybara", ">= 0.8", group: :test

group :active_record do
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/rails_4.2.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 4.2.0"
gem "haml"
gem "devise", ">= 3.4", '< 4.6'
gem "devise", ">= 3.4"
gem "sass-rails", "~> 5.0"
gem "capybara", ">= 0.8", group: :test

Expand Down
2 changes: 1 addition & 1 deletion gemfiles/rails_5.0.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 5.0.0"
gem "haml"
gem "devise", "~> 4.0", '< 4.6'
gem "devise", "~> 4.0"
gem "sass-rails", "~> 5.0"

group :active_record do
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/rails_5.1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 5.1.0"
gem "haml"
gem "devise", "~> 4.0", '< 4.6'
gem "devise", "~> 4.0"
gem "sass-rails", "~> 5.0"

group :active_record do
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/rails_5.2.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
gem "appraisal", ">= 2.0"
gem "rails", "~> 5.2.0"
gem "haml"
gem "devise", "~> 4.4", '< 4.6'
gem "devise", "~> 4.4"
gem "sass-rails", "~> 5.0"

group :active_record do
Expand Down
6 changes: 5 additions & 1 deletion lib/rails_admin/config/fields/types/password.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ class Password < RailsAdmin::Config::Fields::Types::String
end

def parse_input(params)
params[name] = params[name].presence
if params[name].present?
params[name] = params[name]
else
params.delete(name)
end
end

register_instance_option :formatted_value do
Expand Down
2 changes: 1 addition & 1 deletion spec/dummy_app/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ group :mongoid do
end

gem 'carrierwave', '>= 0.8'
gem 'devise', '>= 3.2', '< 4.6'
gem 'devise', '>= 3.2'
gem 'dragonfly', '~> 1.0'
gem 'mini_magick', '>= 3.4'
gem 'mlb', '>= 0.7'
Expand Down
29 changes: 29 additions & 0 deletions spec/rails_admin/config/fields/types/password_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,33 @@

describe RailsAdmin::Config::Fields::Types::Password do
it_behaves_like 'a generic field type', :string_field, :password

describe '#parse_input' do
let(:field) do
RailsAdmin.config(User).fields.detect do |f|
f.name == :password
end
end

context 'if password is not present' do
let(:nil_params) { {password: nil} }
let(:blank_params) { {password: ''} }

it 'cleans nil' do
field.parse_input(nil_params)
expect(nil_params).to eq({})
field.parse_input(blank_params)
expect(blank_params).to eq({})
end
end

context 'if password is present' do
let(:params) { {password: 'aaa'} }

it 'keeps the value' do
field.parse_input(params)
expect(params).to eq({password: 'aaa'})
end
end
end
end

0 comments on commit 72bc037

Please sign in to comment.