Skip to content

Commit 72bc037

Browse files
committed
Devise 4.6 allows passwords to be cleaned, keep existing behavior of skip-if-blank
heartcombo/devise@3aedbf0
1 parent 0b75e14 commit 72bc037

File tree

9 files changed

+41
-8
lines changed

9 files changed

+41
-8
lines changed

gemfiles/cancan.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 5.1.0"
77
gem "haml"
8-
gem "devise", "~> 4.0", '< 4.6'
8+
gem "devise", "~> 4.0"
99
gem "sass-rails", "~> 5.0"
1010

1111
group :active_record do

gemfiles/rails_4.1.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 4.1.0"
77
gem "haml"
8-
gem "devise", ">= 3.2", '< 4.6'
8+
gem "devise", ">= 3.2"
99
gem "capybara", ">= 0.8", group: :test
1010

1111
group :active_record do

gemfiles/rails_4.2.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 4.2.0"
77
gem "haml"
8-
gem "devise", ">= 3.4", '< 4.6'
8+
gem "devise", ">= 3.4"
99
gem "sass-rails", "~> 5.0"
1010
gem "capybara", ">= 0.8", group: :test
1111

gemfiles/rails_5.0.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 5.0.0"
77
gem "haml"
8-
gem "devise", "~> 4.0", '< 4.6'
8+
gem "devise", "~> 4.0"
99
gem "sass-rails", "~> 5.0"
1010

1111
group :active_record do

gemfiles/rails_5.1.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 5.1.0"
77
gem "haml"
8-
gem "devise", "~> 4.0", '< 4.6'
8+
gem "devise", "~> 4.0"
99
gem "sass-rails", "~> 5.0"
1010

1111
group :active_record do

gemfiles/rails_5.2.gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ source "https://rubygems.org"
55
gem "appraisal", ">= 2.0"
66
gem "rails", "~> 5.2.0"
77
gem "haml"
8-
gem "devise", "~> 4.4", '< 4.6'
8+
gem "devise", "~> 4.4"
99
gem "sass-rails", "~> 5.0"
1010

1111
group :active_record do

lib/rails_admin/config/fields/types/password.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ class Password < RailsAdmin::Config::Fields::Types::String
1313
end
1414

1515
def parse_input(params)
16-
params[name] = params[name].presence
16+
if params[name].present?
17+
params[name] = params[name]
18+
else
19+
params.delete(name)
20+
end
1721
end
1822

1923
register_instance_option :formatted_value do

spec/dummy_app/Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ group :mongoid do
3030
end
3131

3232
gem 'carrierwave', '>= 0.8'
33-
gem 'devise', '>= 3.2', '< 4.6'
33+
gem 'devise', '>= 3.2'
3434
gem 'dragonfly', '~> 1.0'
3535
gem 'mini_magick', '>= 3.4'
3636
gem 'mlb', '>= 0.7'

spec/rails_admin/config/fields/types/password_spec.rb

+29
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,33 @@
22

33
describe RailsAdmin::Config::Fields::Types::Password do
44
it_behaves_like 'a generic field type', :string_field, :password
5+
6+
describe '#parse_input' do
7+
let(:field) do
8+
RailsAdmin.config(User).fields.detect do |f|
9+
f.name == :password
10+
end
11+
end
12+
13+
context 'if password is not present' do
14+
let(:nil_params) { {password: nil} }
15+
let(:blank_params) { {password: ''} }
16+
17+
it 'cleans nil' do
18+
field.parse_input(nil_params)
19+
expect(nil_params).to eq({})
20+
field.parse_input(blank_params)
21+
expect(blank_params).to eq({})
22+
end
23+
end
24+
25+
context 'if password is present' do
26+
let(:params) { {password: 'aaa'} }
27+
28+
it 'keeps the value' do
29+
field.parse_input(params)
30+
expect(params).to eq({password: 'aaa'})
31+
end
32+
end
33+
end
534
end

0 commit comments

Comments
 (0)