solidus_auth_devise 2.2.0 → 2.3.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.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +326 -0
  3. data/CHANGELOG.md +250 -163
  4. data/Gemfile +4 -5
  5. data/README.md +22 -5
  6. data/Rakefile +2 -0
  7. data/app/mailers/spree/user_mailer.rb +4 -2
  8. data/app/models/spree/auth_configuration.rb +2 -0
  9. data/app/models/spree/user.rb +19 -19
  10. data/config/initializers/devise.rb +11 -3
  11. data/config/initializers/warden.rb +4 -2
  12. data/config/locales/en.yml +3 -1
  13. data/config/routes.rb +5 -11
  14. data/db/default/users.rb +10 -8
  15. data/db/migrate/20101026184949_create_users.rb +9 -7
  16. data/db/migrate/20101026184950_rename_columns_for_devise.rb +3 -0
  17. data/db/migrate/20101214150824_convert_user_remember_field.rb +2 -0
  18. data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +2 -0
  19. data/db/migrate/20120605211305_make_users_email_index_unique.rb +4 -2
  20. data/db/migrate/20140904000425_add_deleted_at_to_users.rb +2 -0
  21. data/db/migrate/20141002154641_add_confirmable_to_users.rb +2 -0
  22. data/db/migrate/20190125170630_add_reset_password_token_index_to_spree_users.rb +4 -2
  23. data/db/seeds.rb +2 -0
  24. data/lib/controllers/backend/spree/admin/base_controller_decorator.rb +20 -0
  25. data/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb +11 -8
  26. data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +4 -2
  27. data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +11 -8
  28. data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +29 -19
  29. data/lib/controllers/frontend/spree/user_confirmations_controller.rb +2 -0
  30. data/lib/controllers/frontend/spree/user_passwords_controller.rb +4 -1
  31. data/lib/controllers/frontend/spree/user_registrations_controller.rb +4 -0
  32. data/lib/controllers/frontend/spree/user_sessions_controller.rb +2 -0
  33. data/lib/controllers/frontend/spree/users_controller.rb +17 -14
  34. data/lib/generators/solidus/auth/install/install_generator.rb +4 -2
  35. data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb +2 -0
  36. data/lib/solidus/auth.rb +2 -0
  37. data/lib/solidus_auth_devise.rb +2 -0
  38. data/lib/spree/auth/devise.rb +3 -1
  39. data/lib/spree/auth/engine.rb +3 -1
  40. data/lib/spree/auth/version.rb +1 -1
  41. data/lib/spree/authentication_helpers.rb +5 -11
  42. data/lib/tasks/auth.rake +3 -1
  43. data/lib/views/backend/spree/admin/shared/_navigation_footer.html.erb +1 -1
  44. data/lib/views/backend/spree/admin/user_passwords/new.html.erb +1 -3
  45. data/lib/views/backend/spree/admin/user_sessions/new.html.erb +1 -1
  46. data/lib/views/frontend/spree/shared/_login_bar_items.html.erb +1 -1
  47. data/lib/views/frontend/spree/user_passwords/new.html.erb +1 -3
  48. data/solidus_auth_devise.gemspec +16 -6
  49. data/spec/controllers/spree/admin/user_passwords_controller_spec.rb +2 -0
  50. data/spec/controllers/spree/checkout_controller_spec.rb +5 -9
  51. data/spec/controllers/spree/products_controller_spec.rb +2 -1
  52. data/spec/controllers/spree/user_passwords_controller_spec.rb +4 -3
  53. data/spec/controllers/spree/user_registrations_controller_spec.rb +3 -2
  54. data/spec/controllers/spree/user_sessions_controller_spec.rb +14 -0
  55. data/spec/controllers/spree/users_controller_spec.rb +2 -2
  56. data/spec/factories/confirmed_user.rb +5 -3
  57. data/spec/features/account_spec.rb +4 -3
  58. data/spec/features/admin/orders_spec.rb +2 -1
  59. data/spec/features/admin/password_reset_spec.rb +23 -10
  60. data/spec/features/admin/products_spec.rb +2 -1
  61. data/spec/features/admin/sign_in_spec.rb +2 -1
  62. data/spec/features/admin/sign_out_spec.rb +2 -1
  63. data/spec/features/admin_permissions_spec.rb +2 -1
  64. data/spec/features/change_email_spec.rb +3 -2
  65. data/spec/features/checkout_spec.rb +15 -13
  66. data/spec/features/confirmation_spec.rb +2 -0
  67. data/spec/features/order_spec.rb +2 -1
  68. data/spec/features/password_reset_spec.rb +23 -10
  69. data/spec/features/sign_in_spec.rb +2 -1
  70. data/spec/features/sign_out_spec.rb +4 -3
  71. data/spec/features/sign_up_spec.rb +2 -1
  72. data/spec/mailers/user_mailer_spec.rb +2 -1
  73. data/spec/models/order_spec.rb +2 -1
  74. data/spec/models/user_spec.rb +2 -1
  75. data/spec/spec_helper.rb +3 -1
  76. data/spec/support/ability.rb +3 -1
  77. data/spec/support/authentication_helpers.rb +2 -0
  78. data/spec/support/confirm_helpers.rb +4 -2
  79. data/spec/support/email.rb +2 -0
  80. data/spec/support/preferences.rb +10 -2
  81. data/spec/support/spree.rb +2 -0
  82. metadata +94 -35
  83. data/.travis.yml +0 -18
  84. data/lib/controllers/backend/spree/admin/admin_controller_decorator.rb +0 -11
@@ -1,5 +1,6 @@
1
- RSpec.feature 'Sign Out', type: :feature do
1
+ # frozen_string_literal: true
2
2
 
3
+ RSpec.feature 'Sign Out', type: :feature, js: true do
3
4
  given!(:user) do
4
5
  create(:user,
5
6
  email: 'email@person.com',
@@ -19,7 +20,7 @@ RSpec.feature 'Sign Out', type: :feature do
19
20
  scenario 'allow a signed in user to logout' do
20
21
  click_link 'Logout'
21
22
  visit spree.root_path
22
- expect(page).to have_text 'Login'
23
- expect(page).not_to have_text 'Logout'
23
+ expect(page).to have_text 'LOGIN'
24
+ expect(page).not_to have_text 'LOGOUT'
24
25
  end
25
26
  end
@@ -1,5 +1,6 @@
1
- RSpec.feature 'Sign Up', type: :feature do
1
+ # frozen_string_literal: true
2
2
 
3
+ RSpec.feature 'Sign Up', type: :feature do
3
4
  context 'with valid data' do
4
5
  scenario 'create a new user' do
5
6
  visit spree.signup_path
@@ -1,5 +1,6 @@
1
- RSpec.describe Spree::UserMailer, type: :mailer do
1
+ # frozen_string_literal: true
2
2
 
3
+ RSpec.describe Spree::UserMailer, type: :mailer do
3
4
  let!(:store) { create(:store) }
4
5
  let(:user) { create(:user) }
5
6
 
@@ -1,5 +1,6 @@
1
- RSpec.describe Spree::Order, type: :model do
1
+ # frozen_string_literal: true
2
2
 
3
+ RSpec.describe Spree::Order, type: :model do
3
4
  let(:order) { described_class.new }
4
5
 
5
6
  context '#associate_user!' do
@@ -1,5 +1,6 @@
1
- RSpec.describe Spree::User, type: :model do
1
+ # frozen_string_literal: true
2
2
 
3
+ RSpec.describe Spree::User, type: :model do
3
4
  before(:all) { Spree::Role.create name: 'admin' }
4
5
 
5
6
  it '#admin?' do
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "simplecov"
2
4
  SimpleCov.start "rails"
3
5
 
4
6
  ENV["RAILS_ENV"] ||= "test"
5
7
 
6
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
8
+ require File.expand_path('dummy/config/environment.rb', __dir__)
7
9
 
8
10
  require "solidus_support/extension/feature_helper"
9
11
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.configure do |config|
2
4
  config.after do
3
5
  Spree::Ability.abilities.delete(AbilityDecorator) if Spree::Ability.abilities.include?(AbilityDecorator)
@@ -8,7 +10,7 @@ if defined? CanCan::Ability
8
10
  class AbilityDecorator
9
11
  include CanCan::Ability
10
12
 
11
- def initialize(user)
13
+ def initialize(_user)
12
14
  cannot :manage, Spree::Order
13
15
  end
14
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AuthenticationHelpers
2
4
  def sign_in_as!(user)
3
5
  visit '/login'
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ConfirmHelpers
2
4
  def set_confirmable_option(value)
3
5
  if value
4
6
  Spree::User.devise_modules.push(:confirmable)
5
- Spree::Auth::Config.set(confirmable: true)
7
+ stub_spree_preferences(Spree::Auth::Config, confirmable: true)
6
8
  else
7
9
  Spree::User.devise_modules.delete(:confirmable)
8
- Spree::Auth::Config.set(confirmable: false)
10
+ stub_spree_preferences(Spree::Auth::Config, confirmable: false)
9
11
  end
10
12
  end
11
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.configure do |config|
2
4
  config.before do
3
5
  ActionMailer::Base.deliveries.clear
@@ -1,5 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.configure do |config|
2
- config.before do
3
- Spree::Auth::Config.preference_store = Spree::Auth::Config.default_preferences
4
+ if SolidusSupport.reset_spree_preferences_deprecated?
5
+ config.before :suite do
6
+ Spree::TestingSupport::Preferences.freeze_preferences(Spree::Auth::Config)
7
+ end
8
+ else
9
+ config.before do
10
+ Spree::Auth::Config.preference_store = Spree::Auth::Config.default_preferences
11
+ end
4
12
  end
5
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spree/testing_support/factories'
2
4
  require 'spree/testing_support/url_helpers'
3
5
  require 'spree/testing_support/controller_requests'
metadata CHANGED
@@ -1,77 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_auth_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-13 00:00:00.000000000 Z
11
+ date: 2019-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: solidus_core
14
+ name: devise
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.2.0
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '3'
19
+ version: '4.1'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.2.0
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '3'
26
+ version: '4.1'
33
27
  - !ruby/object:Gem::Dependency
34
- name: solidus_support
28
+ name: devise-encryptable
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - ">="
31
+ - - '='
38
32
  - !ruby/object:Gem::Version
39
- version: 0.1.3
33
+ version: 0.2.0
40
34
  type: :runtime
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
- - - ">="
38
+ - - '='
45
39
  - !ruby/object:Gem::Version
46
- version: 0.1.3
40
+ version: 0.2.0
47
41
  - !ruby/object:Gem::Dependency
48
- name: devise
42
+ name: solidus_core
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - "~>"
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
- version: '4.1'
47
+ version: 1.2.0
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '3'
54
51
  type: :runtime
55
52
  prerelease: false
56
53
  version_requirements: !ruby/object:Gem::Requirement
57
54
  requirements:
58
- - - "~>"
55
+ - - ">="
59
56
  - !ruby/object:Gem::Version
60
- version: '4.1'
57
+ version: 1.2.0
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '3'
61
61
  - !ruby/object:Gem::Dependency
62
- name: devise-encryptable
62
+ name: solidus_support
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - '='
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 0.2.0
67
+ version: 0.1.3
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - '='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 0.2.0
74
+ version: 0.1.3
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: capybara
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -157,19 +157,19 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '2.0'
159
159
  - !ruby/object:Gem::Dependency
160
- name: poltergeist
160
+ name: github_changelog_generator
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '1.5'
165
+ version: '1.14'
166
166
  type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '1.5'
172
+ version: '1.14'
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: rspec-rails
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -184,6 +184,48 @@ dependencies:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
186
  version: '3.3'
187
+ - !ruby/object:Gem::Dependency
188
+ name: rubocop
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '0.71'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.71'
201
+ - !ruby/object:Gem::Dependency
202
+ name: rubocop-performance
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '1.4'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '1.4'
215
+ - !ruby/object:Gem::Dependency
216
+ name: rubocop-rails
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '2.2'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '2.2'
187
229
  - !ruby/object:Gem::Dependency
188
230
  name: sass-rails
189
231
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +240,20 @@ dependencies:
198
240
  - - ">="
199
241
  - !ruby/object:Gem::Version
200
242
  version: '0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: selenium-webdriver
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '3.142'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '3.142'
201
257
  - !ruby/object:Gem::Dependency
202
258
  name: shoulda-matchers
203
259
  requirement: !ruby/object:Gem::Requirement
@@ -291,7 +347,7 @@ files:
291
347
  - ".gem_release.yml"
292
348
  - ".gitignore"
293
349
  - ".rspec"
294
- - ".travis.yml"
350
+ - ".rubocop.yml"
295
351
  - CHANGELOG.md
296
352
  - Gemfile
297
353
  - LICENSE.md
@@ -329,7 +385,7 @@ files:
329
385
  - lib/assets/javascripts/spree/frontend/solidus_auth.js
330
386
  - lib/assets/stylesheets/spree/backend/solidus_auth.css
331
387
  - lib/assets/stylesheets/spree/frontend/solidus_auth.css
332
- - lib/controllers/backend/spree/admin/admin_controller_decorator.rb
388
+ - lib/controllers/backend/spree/admin/base_controller_decorator.rb
333
389
  - lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb
334
390
  - lib/controllers/backend/spree/admin/user_passwords_controller.rb
335
391
  - lib/controllers/backend/spree/admin/user_sessions_controller.rb
@@ -407,7 +463,10 @@ homepage:
407
463
  licenses:
408
464
  - BSD-3
409
465
  metadata: {}
410
- post_install_message:
466
+ post_install_message: |-
467
+ NOTE: Rails 6 has removed secret_token in favor of secret_key_base, which was deprecated in
468
+ Rails 5.2. solidus_auth_devise will keep using secret_token, when present, as the pepper. If
469
+ secret_token is undefined or not available, secret_key_base will be used instead.
411
470
  rdoc_options: []
412
471
  require_paths:
413
472
  - lib
@@ -415,7 +474,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
415
474
  requirements:
416
475
  - - ">="
417
476
  - !ruby/object:Gem::Version
418
- version: '2.1'
477
+ version: '2.3'
419
478
  required_rubygems_version: !ruby/object:Gem::Requirement
420
479
  requirements:
421
480
  - - ">="
data/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.1
5
- env:
6
- matrix:
7
- - SOLIDUS_BRANCH=v2.4 DB=postgres
8
- - SOLIDUS_BRANCH=v2.5 DB=postgres
9
- - SOLIDUS_BRANCH=v2.6 DB=postgres
10
- - SOLIDUS_BRANCH=v2.7 DB=postgres
11
- - SOLIDUS_BRANCH=v2.8 DB=postgres
12
- - SOLIDUS_BRANCH=master DB=postgres
13
- - SOLIDUS_BRANCH=v2.4 DB=mysql
14
- - SOLIDUS_BRANCH=v2.5 DB=mysql
15
- - SOLIDUS_BRANCH=v2.6 DB=mysql
16
- - SOLIDUS_BRANCH=v2.7 DB=mysql
17
- - SOLIDUS_BRANCH=v2.8 DB=mysql
18
- - SOLIDUS_BRANCH=master DB=mysql
@@ -1,11 +0,0 @@
1
- Spree::Admin::BaseController.class_eval do
2
- protected
3
-
4
- def model_class
5
- const_name = controller_name.classify
6
- if Spree.const_defined?(const_name, false)
7
- return "Spree::#{const_name}".constantize
8
- end
9
- nil
10
- end
11
- end