devise-secure_password 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,7 @@ en:
7
7
  types:
8
8
  uppercase: "uppercase"
9
9
  downcase: "downcase"
10
+ lowercase: "lowercase"
10
11
  number: "number"
11
12
  special: "special"
12
13
 
@@ -24,12 +24,16 @@ Gem::Specification.new do |spec|
24
24
  spec.files = Dir['./**/*'].reject do |f|
25
25
  f.match(%r{^./(test|spec|features|lib/tasks)/|Gemfile.lock.ci})
26
26
  end
27
+
28
+ spec.metadata = {
29
+ 'rubygems_mfa_required' => 'true'
30
+ }
31
+
27
32
  spec.executables = spec.files.grep(%r{^bin/}).map { |f| File.basename(f) }
28
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
29
33
  spec.require_paths = ['lib']
30
34
 
31
35
  spec.add_runtime_dependency 'devise', '>= 4.0.0', '< 5.0.0'
32
- spec.add_runtime_dependency 'railties', '>= 5.0.0', '< 7.0.0'
36
+ spec.add_runtime_dependency 'railties', '>= 5.0.0', '< 8.0.0'
33
37
 
34
38
  spec.add_development_dependency 'bundler', '>= 2.2.14'
35
39
  spec.add_development_dependency 'capybara', '>= 3.35.3'
@@ -38,7 +42,7 @@ Gem::Specification.new do |spec|
38
42
  spec.add_development_dependency 'devise', '~> 4.0'
39
43
  spec.add_development_dependency 'flay', '>= 2.10.0'
40
44
  spec.add_development_dependency 'launchy', '>= 2.4.3'
41
- spec.add_development_dependency 'rails', '>= 5.2.0'
45
+ spec.add_development_dependency 'rails', '>= 6.1.0'
42
46
  spec.add_development_dependency 'rake', '>= 12.3'
43
47
  spec.add_development_dependency 'rspec', '>= 3.7'
44
48
  spec.add_development_dependency 'rspec_junit_formatter', '>= 0.3'
@@ -50,7 +54,7 @@ Gem::Specification.new do |spec|
50
54
  spec.add_development_dependency 'selenium-webdriver', '>= 3.7.0'
51
55
  spec.add_development_dependency 'simplecov', '>= 0.18.2'
52
56
  spec.add_development_dependency 'simplecov-console', '>= 0.4.2'
53
- spec.add_development_dependency 'sqlite3', '>= 1.3.13'
57
+ spec.add_development_dependency 'sqlite3', '>= 1.7.0'
54
58
 
55
59
  spec.required_ruby_version = '>= 2.7'
56
60
  end
@@ -8,7 +8,7 @@ gemspec path: '../'
8
8
  # Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
9
9
  gem 'rails', '~> 6.1.3', '>= 6.1.3.1'
10
10
  # Use sqlite3 as the database for Active Record
11
- gem 'sqlite3', '~> 1.4'
11
+ gem 'sqlite3', '~> 1.7.0'
12
12
  # Use Puma as the app server
13
13
  gem 'puma', '~> 5.0'
14
14
  # Use SCSS for stylesheets
@@ -0,0 +1,66 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ENV['RAILS_TARGET'] ||= '7.0'
5
+
6
+ gemspec path: '../'
7
+
8
+ # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
9
+ gem 'rails', '~> 7.1.3', '>= 7.1.3.4'
10
+
11
+ # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
12
+ gem 'sprockets-rails'
13
+
14
+ # Use sqlite3 as the database for Active Record
15
+ gem 'sqlite3', '~> 1.4'
16
+
17
+ # Use the Puma web server [https://github.com/puma/puma]
18
+ gem 'puma', '>= 5.0'
19
+
20
+ # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
21
+ gem 'importmap-rails'
22
+
23
+ # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
24
+ gem 'turbo-rails'
25
+
26
+ # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
27
+ gem 'stimulus-rails'
28
+
29
+ # Build JSON APIs with ease [https://github.com/rails/jbuilder]
30
+ gem 'jbuilder'
31
+
32
+ # Use Redis adapter to run Action Cable in production
33
+ # gem "redis", ">= 4.0.1"
34
+
35
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
36
+ # gem "kredis"
37
+
38
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
39
+ # gem "bcrypt", "~> 3.1.7"
40
+
41
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
42
+ gem 'tzinfo-data', platforms: %i(windows jruby)
43
+
44
+ # Reduces boot times through caching; required in config/boot.rb
45
+ gem 'bootsnap', require: false
46
+
47
+ # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
48
+ # gem "image_processing", "~> 1.2"
49
+
50
+ group :development do
51
+ # Use console on exceptions pages [https://github.com/rails/web-console]
52
+ gem 'web-console'
53
+
54
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
55
+ # gem "spring"
56
+ end
57
+
58
+ group :test do
59
+ # Adds support for Capybara system testing and selenium driver
60
+ gem 'capybara', '>= 3.26'
61
+ gem 'codecov', require: false
62
+ gem 'selenium-webdriver'
63
+ gem 'shoulda-matchers'
64
+ # Easy installation and use of web drivers to run system tests with browsers
65
+ gem 'webdrivers'
66
+ end
@@ -37,15 +37,15 @@ module Devise
37
37
  def before_resource_initialized
38
38
  return if self.class.respond_to?(:password_previously_used_count)
39
39
 
40
- raise ConfigurationError, <<-ERROR.strip_heredoc
40
+ raise ConfigurationError, <<~ERROR
41
41
 
42
- The password_disallows_frequent_changes module depends on the
43
- password_disallows_frequent_reuse module. Verify that you have
44
- added both modules to your model, for example:
42
+ The password_disallows_frequent_changes module depends on the
43
+ password_disallows_frequent_reuse module. Verify that you have
44
+ added both modules to your model, for example:
45
45
 
46
- devise :database_authenticatable, :registerable,
47
- :password_disallows_frequent_reuse,
48
- :password_disallows_frequent_changes
46
+ devise :database_authenticatable, :registerable,
47
+ :password_disallows_frequent_reuse,
48
+ :password_disallows_frequent_changes
49
49
  ERROR
50
50
  end
51
51
 
@@ -41,7 +41,7 @@ module Devise
41
41
  end
42
42
 
43
43
  def previous_password?(password)
44
- salts = previous_passwords.select(:salt).map(&:salt)
44
+ salts = previous_passwords.pluck(:salt)
45
45
  pepper = self.class.pepper.presence || ''
46
46
 
47
47
  salts.each do |salt|
@@ -20,15 +20,15 @@ module Devise
20
20
  def before_regular_update_initialized
21
21
  return if self.class.respond_to?(:password_previously_used_count)
22
22
 
23
- raise ConfigurationError, <<-ERROR.strip_heredoc
23
+ raise ConfigurationError, <<~ERROR
24
24
 
25
- The password_requires_regular_updates module depends on the
26
- password_disallows_frequent_reuse module. Verify that you have
27
- added both modules to your model, for example:
25
+ The password_requires_regular_updates module depends on the
26
+ password_disallows_frequent_reuse module. Verify that you have
27
+ added both modules to your model, for example:
28
28
 
29
- devise :database_authenticatable, :registerable,
30
- :password_disallows_frequent_reuse,
31
- :password_requires_regular_updates
29
+ devise :database_authenticatable, :registerable,
30
+ :password_disallows_frequent_reuse,
31
+ :password_requires_regular_updates
32
32
  ERROR
33
33
  end
34
34
 
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module SecurePassword
3
- VERSION = '2.0.0'.freeze
3
+ VERSION = '2.1.0'.freeze
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@ Devise.setup do |config|
18
18
  # The number of numbers (0-9) required in a password:
19
19
  # config.password_required_number_count = 1
20
20
 
21
- # The number of special characters (!@#$%^&*()_+-=[]{}|') required in a password:
21
+ # The number of special characters ( !@#$%^&*()_+-=[]{}|'"/\.,`<>:;?~) required in a password:
22
22
  # config.password_required_special_character_count = 1
23
23
 
24
24
  # ==> Configuration for the Devise Secure Password extension
@@ -11,7 +11,7 @@ module Support
11
11
  uppercase: characters_to_dictionary(('A'..'Z').to_a),
12
12
  lowercase: characters_to_dictionary(('a'..'z').to_a),
13
13
  number: characters_to_dictionary(('0'..'9').to_a),
14
- special: characters_to_dictionary(%w(! @ # $ % ^ & * ( ) _ + - = [ ] { } | ')),
14
+ special: characters_to_dictionary([' ', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '-', '=', '[', ']', '{', '}', '|', '"', '/', '\\', '.', ',', '`', '<', '>', ':', ';', '?', '~', "'"]),
15
15
  unknown: {}
16
16
  }
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-secure_password
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Eissler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-04 00:00:00.000000000 Z
11
+ date: 2024-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: devise
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 5.0.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 7.0.0
42
+ version: 8.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: 5.0.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 7.0.0
52
+ version: 8.0.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -154,14 +154,14 @@ dependencies:
154
154
  requirements:
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 5.2.0
157
+ version: 6.1.0
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - ">="
163
163
  - !ruby/object:Gem::Version
164
- version: 5.2.0
164
+ version: 6.1.0
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: rake
167
167
  requirement: !ruby/object:Gem::Requirement
@@ -322,14 +322,14 @@ dependencies:
322
322
  requirements:
323
323
  - - ">="
324
324
  - !ruby/object:Gem::Version
325
- version: 1.3.13
325
+ version: 1.7.0
326
326
  type: :development
327
327
  prerelease: false
328
328
  version_requirements: !ruby/object:Gem::Requirement
329
329
  requirements:
330
330
  - - ">="
331
331
  - !ruby/object:Gem::Version
332
- version: 1.3.13
332
+ version: 1.7.0
333
333
  description: Adds configurable password policy enforcement to devise.
334
334
  email:
335
335
  - mark.eissler@valimail.com
@@ -353,10 +353,8 @@ files:
353
353
  - "./config/locales/en.yml"
354
354
  - "./devise-secure_password.gemspec"
355
355
  - "./docker-entrypoint.sh"
356
- - "./gemfiles/rails_6_0.gemfile"
357
- - "./gemfiles/rails_6_0.gemfile.lock"
358
356
  - "./gemfiles/rails_6_1.gemfile"
359
- - "./gemfiles/rails_6_1.gemfile.lock"
357
+ - "./gemfiles/rails_7_0.gemfile"
360
358
  - "./lib/devise/secure_password.rb"
361
359
  - "./lib/devise/secure_password/controllers/devise_helpers.rb"
362
360
  - "./lib/devise/secure_password/controllers/helpers.rb"
@@ -372,11 +370,13 @@ files:
372
370
  - "./lib/generators/devise/templates/README.txt"
373
371
  - "./lib/generators/devise/templates/secure_password.rb"
374
372
  - "./lib/support/string/character_counter.rb"
375
- - "./pkg/devise-secure_password-2.0.0.gem"
373
+ - "./pkg/devise-secure_password-2.0.1.gem"
374
+ - "./pkg/devise-secure_password-2.1.0.gem"
376
375
  homepage: https://github.com/valimail/devise-secure_password
377
376
  licenses:
378
377
  - MIT
379
- metadata: {}
378
+ metadata:
379
+ rubygems_mfa_required: 'true'
380
380
  post_install_message:
381
381
  rdoc_options: []
382
382
  require_paths:
@@ -392,7 +392,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
392
392
  - !ruby/object:Gem::Version
393
393
  version: '0'
394
394
  requirements: []
395
- rubygems_version: 3.2.16
395
+ rubygems_version: 3.5.9
396
396
  signing_key:
397
397
  specification_version: 4
398
398
  summary: A devise password policy enforcement extension.
@@ -1,57 +0,0 @@
1
- source 'https://rubygems.org'
2
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
-
4
- ENV['RAILS_TARGET'] ||= '6.0'
5
-
6
- gemspec path: '../'
7
-
8
- # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
9
- gem 'rails', '~> 6.0.3', '>= 6.0.3.6'
10
- # Use sqlite3 as the database for Active Record
11
- gem 'sqlite3', '~> 1.4'
12
- # Use Puma as the app server
13
- gem 'puma', '~> 4.1'
14
- # Use SCSS for stylesheets
15
- gem 'sass-rails', '>= 6'
16
- # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
17
- gem 'webpacker', '~> 4.0'
18
- # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
19
- gem 'turbolinks', '~> 5'
20
- # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
21
- gem 'jbuilder', '~> 2.7'
22
- # Use Redis adapter to run Action Cable in production
23
- # gem 'redis', '~> 4.0'
24
- # Use Active Model has_secure_password
25
- # gem 'bcrypt', '~> 3.1.7'
26
-
27
- # Use Active Storage variant
28
- # gem 'image_processing', '~> 1.2'
29
-
30
- # Reduces boot times through caching; required in config/boot.rb
31
- gem 'bootsnap', '>= 1.4.2', require: false
32
-
33
- group :development, :test do
34
- # Call 'byebug' anywhere in the code to stop execution and get a debugger console
35
- gem 'byebug', platforms: %i(mri mingw x64_mingw)
36
- end
37
-
38
- group :development do
39
- # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
40
- gem 'listen', '~> 3.2'
41
- gem 'web-console', '>= 3.3.0'
42
- end
43
-
44
- group :test do
45
- # Adds support for Capybara system testing and selenium driver
46
- gem 'capybara', '>= 2.15'
47
- gem 'codecov', require: false
48
- gem 'selenium-webdriver'
49
- gem 'shoulda-matchers'
50
- # Easy installation and use of web drivers to run system tests with browsers
51
- gem 'webdrivers'
52
- end
53
-
54
- # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
55
- gem 'tzinfo-data', platforms: %i(mingw mswin x64_mingw jruby)
56
-
57
- gem 'webrick', '~> 1.7'