solidus_auth_devise 2.5.9 → 2.6.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/.git-blame-ignore-revs +2 -0
  3. data/.github/workflows/test.yml +22 -0
  4. data/.rubocop.yml +0 -8
  5. data/Gemfile +33 -19
  6. data/README.md +1 -1
  7. data/Rakefile +5 -5
  8. data/app/models/spree/user.rb +3 -12
  9. data/app/patches/controllers/solidus_auth_devise/application_controller_patch.rb +29 -0
  10. data/bin/rspec +16 -0
  11. data/config/initializers/devise.rb +7 -5
  12. data/config/routes.rb +31 -31
  13. data/db/default/users.rb +5 -5
  14. data/db/migrate/20101026184949_create_users.rb +19 -19
  15. data/db/migrate/20101026184950_rename_columns_for_devise.rb +1 -3
  16. data/db/migrate/20101214150824_convert_user_remember_field.rb +1 -1
  17. data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +1 -1
  18. data/db/migrate/20120605211305_make_users_email_index_unique.rb +1 -1
  19. data/db/migrate/20140904000425_add_deleted_at_to_users.rb +1 -1
  20. data/db/migrate/20141002154641_add_confirmable_to_users.rb +1 -1
  21. data/db/migrate/20190125170630_add_reset_password_token_index_to_spree_users.rb +3 -3
  22. data/db/migrate/20200417153503_add_unconfirmed_email_to_spree_users.rb +1 -1
  23. data/db/seeds.rb +1 -1
  24. data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +3 -3
  25. data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +7 -7
  26. data/lib/controllers/frontend/spree/user_confirmations_controller.rb +1 -1
  27. data/lib/controllers/frontend/spree/user_passwords_controller.rb +2 -2
  28. data/lib/controllers/frontend/spree/user_registrations_controller.rb +2 -2
  29. data/lib/controllers/frontend/spree/user_sessions_controller.rb +6 -6
  30. data/lib/controllers/frontend/spree/users_controller.rb +5 -4
  31. data/lib/generators/solidus/auth/install/install_generator.rb +7 -7
  32. data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb.erb +4 -0
  33. data/lib/generators/solidus_auth_devise/install/install_generator.rb +2 -2
  34. data/lib/{decorators/backend/controllers/spree/admin/base_controller_decorator.rb → patches/backend/controllers/solidus_auth_devise/admin/base_controller_patch.rb} +2 -2
  35. data/lib/patches/backend/controllers/solidus_auth_devise/admin/orders/customer_details_controller_patch.rb +28 -0
  36. data/lib/{decorators/frontend/controllers/spree/checkout_controller_decorator.rb → patches/frontend/controllers/solidus_auth_devise/checkout_controller_patch.rb} +7 -7
  37. data/lib/solidus_auth_devise/configuration.rb +1 -1
  38. data/lib/solidus_auth_devise/engine.rb +1 -1
  39. data/lib/solidus_auth_devise/version.rb +1 -1
  40. data/lib/solidus_auth_devise.rb +9 -11
  41. data/lib/spree/auth/engine.rb +10 -15
  42. data/lib/spree/auth/version.rb +1 -1
  43. data/lib/tasks/auth.rake +1 -1
  44. data/solidus_auth_devise.gemspec +20 -21
  45. metadata +19 -96
  46. data/.circleci/config.yml +0 -73
  47. data/.rubocop_todo.yml +0 -397
  48. data/lib/decorators/backend/controllers/spree/admin/orders/customer_details_controller_decorator.rb +0 -22
  49. data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb +0 -3
  50. data/lib/spree/authentication_helpers.rb +0 -27
  51. data/spec/controllers/spree/admin/base_controller_spec.rb +0 -53
  52. data/spec/controllers/spree/admin/user_passwords_controller_spec.rb +0 -14
  53. data/spec/controllers/spree/admin/user_sessions_controller_spec.rb +0 -20
  54. data/spec/controllers/spree/base_controller_spec.rb +0 -53
  55. data/spec/controllers/spree/checkout_controller_spec.rb +0 -192
  56. data/spec/controllers/spree/products_controller_spec.rb +0 -24
  57. data/spec/controllers/spree/user_passwords_controller_spec.rb +0 -45
  58. data/spec/controllers/spree/user_registrations_controller_spec.rb +0 -97
  59. data/spec/controllers/spree/user_sessions_controller_spec.rb +0 -125
  60. data/spec/controllers/spree/users_controller_spec.rb +0 -79
  61. data/spec/factories/confirmed_user.rb +0 -9
  62. data/spec/features/account_spec.rb +0 -59
  63. data/spec/features/admin/password_reset_spec.rb +0 -80
  64. data/spec/features/admin/products_spec.rb +0 -10
  65. data/spec/features/admin/sign_in_spec.rb +0 -45
  66. data/spec/features/admin/sign_out_spec.rb +0 -42
  67. data/spec/features/admin_permissions_spec.rb +0 -47
  68. data/spec/features/change_email_spec.rb +0 -27
  69. data/spec/features/checkout_spec.rb +0 -158
  70. data/spec/features/confirmation_spec.rb +0 -28
  71. data/spec/features/order_spec.rb +0 -59
  72. data/spec/features/password_reset_spec.rb +0 -37
  73. data/spec/features/sign_in_spec.rb +0 -53
  74. data/spec/features/sign_out_spec.rb +0 -26
  75. data/spec/features/sign_up_spec.rb +0 -31
  76. data/spec/mailers/user_mailer_spec.rb +0 -47
  77. data/spec/models/order_spec.rb +0 -27
  78. data/spec/models/user_spec.rb +0 -103
  79. data/spec/requests/spree/frontend/user_update_spec.rb +0 -42
  80. data/spec/spec_helper.rb +0 -33
  81. data/spec/support/ability.rb +0 -17
  82. data/spec/support/authentication_helpers.rb +0 -16
  83. data/spec/support/confirm_helpers.rb +0 -27
  84. data/spec/support/email.rb +0 -7
  85. data/spec/support/features/fill_addresses_fields.rb +0 -29
  86. data/spec/support/preferences.rb +0 -13
  87. data/spec/support/spree.rb +0 -11
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::UserConfirmationsController < Devise::ConfirmationsController
4
- helper 'spree/base', 'spree/store'
4
+ helper "spree/base", "spree/store"
5
5
 
6
6
  include Spree::Core::ControllerHelpers::Auth
7
7
  include Spree::Core::ControllerHelpers::Common
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::UserPasswordsController < Devise::PasswordsController
4
- helper 'spree/base', 'spree/store'
4
+ helper "spree/base", "spree/store"
5
5
 
6
6
  include Spree::Core::ControllerHelpers::Auth
7
7
  include Spree::Core::ControllerHelpers::Common
@@ -44,7 +44,7 @@ class Spree::UserPasswordsController < Devise::PasswordsController
44
44
  protected
45
45
 
46
46
  def translation_scope
47
- 'devise.user_passwords'
47
+ "devise.user_passwords"
48
48
  end
49
49
 
50
50
  def new_session_path(resource_name)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::UserRegistrationsController < Devise::RegistrationsController
4
- helper 'spree/base', 'spree/store'
4
+ helper "spree/base", "spree/store"
5
5
 
6
6
  include Spree::Core::ControllerHelpers::Auth
7
7
  include Spree::Core::ControllerHelpers::Common
@@ -29,7 +29,7 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
29
29
  protected
30
30
 
31
31
  def translation_scope
32
- 'devise.user_registrations'
32
+ "devise.user_registrations"
33
33
  end
34
34
 
35
35
  def check_permissions
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::UserSessionsController < Devise::SessionsController
4
- helper 'spree/base', 'spree/store'
4
+ helper "spree/base", "spree/store"
5
5
 
6
6
  include Spree::Core::ControllerHelpers::Auth
7
7
  include Spree::Core::ControllerHelpers::Common
@@ -18,7 +18,7 @@ class Spree::UserSessionsController < Devise::SessionsController
18
18
  if spree_user_signed_in?
19
19
  respond_to do |format|
20
20
  format.html do
21
- flash[:success] = I18n.t('spree.logged_in_succesfully')
21
+ flash[:success] = I18n.t("spree.logged_in_succesfully")
22
22
  redirect_back_or_default(after_sign_in_path_for(spree_current_user))
23
23
  end
24
24
  format.js { render success_json }
@@ -26,11 +26,11 @@ class Spree::UserSessionsController < Devise::SessionsController
26
26
  else
27
27
  respond_to do |format|
28
28
  format.html do
29
- flash.now[:error] = t('devise.failure.invalid')
29
+ flash.now[:error] = t("devise.failure.invalid")
30
30
  render :new
31
31
  end
32
32
  format.js do
33
- render json: { error: t('devise.failure.invalid') },
33
+ render json: {error: t("devise.failure.invalid")},
34
34
  status: :unprocessable_entity
35
35
  end
36
36
  end
@@ -40,13 +40,13 @@ class Spree::UserSessionsController < Devise::SessionsController
40
40
  protected
41
41
 
42
42
  def translation_scope
43
- 'devise.user_sessions'
43
+ "devise.user_sessions"
44
44
  end
45
45
 
46
46
  private
47
47
 
48
48
  def accurate_title
49
- I18n.t('spree.login')
49
+ I18n.t("spree.login")
50
50
  end
51
51
 
52
52
  def redirect_back_or_default(default)
@@ -4,11 +4,12 @@ class Spree::UsersController < Spree::StoreController
4
4
  skip_before_action :set_current_order, only: :show, raise: false
5
5
  prepend_before_action :authorize_actions, only: :new
6
6
 
7
- def new; end
7
+ def new
8
+ end
8
9
 
9
10
  def show
10
11
  load_object
11
- @orders = @user.orders.complete.order('completed_at desc')
12
+ @orders = @user.orders.complete.order("completed_at desc")
12
13
  end
13
14
 
14
15
  def create
@@ -43,7 +44,7 @@ class Spree::UsersController < Spree::StoreController
43
44
  bypass_sign_in(@user)
44
45
  end
45
46
  end
46
- redirect_to redirect_url, notice: I18n.t('spree.account_updated')
47
+ redirect_to redirect_url, notice: I18n.t("spree.account_updated")
47
48
  else
48
49
  render :edit
49
50
  end
@@ -65,6 +66,6 @@ class Spree::UsersController < Spree::StoreController
65
66
  end
66
67
 
67
68
  def accurate_title
68
- I18n.t('spree.my_account')
69
+ I18n.t("spree.my_account")
69
70
  end
70
71
  end
@@ -14,12 +14,12 @@ module Solidus
14
14
  source_root "#{__dir__}/templates"
15
15
 
16
16
  def generate_devise_key
17
- template 'config/initializers/devise.rb', 'config/initializers/devise.rb', skip: true
17
+ template "config/initializers/devise.rb.erb", "config/initializers/devise.rb", skip: true
18
18
  end
19
19
 
20
20
  def add_migrations
21
- admin_email = options[:admin_email] || (options[:interactive] && ask("Email:", default: 'admin@example.com'))
22
- admin_password = options[:admin_password] || (options[:interactive] && ask("Password:", default: 'test123'))
21
+ admin_email = options[:admin_email] || (options[:interactive] && ask("Email:", default: "admin@example.com"))
22
+ admin_password = options[:admin_password] || (options[:interactive] && ask("Password:", default: "test123"))
23
23
 
24
24
  options = []
25
25
  options << "ADMIN_EMAIL=#{admin_email}" if admin_email
@@ -30,12 +30,12 @@ module Solidus
30
30
 
31
31
  def run_migrations
32
32
  if options[:skip_migrations] ||
33
- options[:auto_run_migrations] == false || # exclude nil
34
- options[:interactive] && no?('Would you like to run the migrations now?')
33
+ options[:auto_run_migrations] == false || # exclude nil
34
+ options[:interactive] && no?("Would you like to run the migrations now?")
35
35
 
36
- say_status :skip, 'Skipping rake db:migrate, don\'t forget to run it!', :yellow
36
+ say_status :skip, "Skipping rake db:migrate, don't forget to run it!", :yellow
37
37
  else
38
- rake 'db:migrate'
38
+ rake "db:migrate"
39
39
  end
40
40
  end
41
41
  end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ Devise.secret_key = '<%= SecureRandom.hex(64) %>'
4
+ Devise.email_regexp = Spree::Config[:default_email_regexp]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../solidus/auth/install/install_generator'
3
+ require_relative "../../solidus/auth/install/install_generator"
4
4
 
5
5
  module SolidusAuthDevise
6
6
  module Generators
@@ -11,7 +11,7 @@ module SolidusAuthDevise
11
11
  end
12
12
 
13
13
  def forward_to_spree_auth_install
14
- generate 'solidus:auth:install', *ARGV
14
+ generate "solidus:auth:install", *ARGV
15
15
  end
16
16
  end
17
17
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
3
+ module SolidusAuthDevise
4
4
  module Admin
5
- module BaseControllerDecorator
5
+ module BaseControllerPatch
6
6
  protected
7
7
 
8
8
  def model_class
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusAuthDevise
4
+ module Admin
5
+ module Orders
6
+ module CustomerDetailsControllerPatch
7
+ def self.prepended(base)
8
+ base.before_action :check_authorization
9
+ end
10
+
11
+ private
12
+
13
+ def check_authorization
14
+ load_order
15
+ session[:access_token] ||= params[:token]
16
+
17
+ resource = @order
18
+ action = params[:action].to_sym
19
+ action = :edit if action == :show # show route renders :edit for this controller
20
+
21
+ authorize! action, resource, session[:access_token]
22
+ end
23
+
24
+ Spree::Admin::Orders::CustomerDetailsController.prepend self
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module CheckoutControllerDecorator
3
+ module SolidusAuthDevise
4
+ module CheckoutControllerPatch
5
5
  def self.prepended(base)
6
6
  base.before_action :check_registration, except: [:registration, :update_registration]
7
7
  base.before_action :check_authorization
@@ -21,20 +21,20 @@ module Spree
21
21
  else
22
22
  flash[:registration_error] = t(:email_is_invalid, scope: [:errors, :messages])
23
23
  @user = Spree::User.new
24
- render 'registration'
24
+ render "registration"
25
25
  end
26
26
  end
27
27
 
28
28
  private
29
29
 
30
30
  def order_params
31
- params.
32
- fetch(:order, {}).
33
- permit(:email)
31
+ params
32
+ .fetch(:order, {})
33
+ .permit(:email)
34
34
  end
35
35
 
36
36
  def skip_state_validation?
37
- %w(registration update_registration).include?(params[:action])
37
+ %w[registration update_registration].include?(params[:action])
38
38
  end
39
39
 
40
40
  def check_authorization
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/auth_configuration'
3
+ require "spree/auth_configuration"
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/auth/engine'
3
+ require "spree/auth/engine"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusAuthDevise
4
- VERSION = '2.5.9'
4
+ VERSION = "2.6.0"
5
5
  end
@@ -1,14 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'solidus_core'
4
- require 'solidus_support'
5
- require 'deface'
6
- require 'devise'
7
- require 'devise-encryptable'
8
- require 'cancan'
3
+ require "solidus_core"
4
+ require "solidus_support"
5
+ require "deface"
6
+ require "devise"
7
+ require "devise-encryptable"
8
+ require "cancan"
9
9
 
10
- require 'solidus_auth_devise/configuration'
11
- require 'solidus_auth_devise/version'
12
- require 'solidus_auth_devise/engine'
13
-
14
- require 'spree/authentication_helpers'
10
+ require "solidus_auth_devise/configuration"
11
+ require "solidus_auth_devise/version"
12
+ require "solidus_auth_devise/engine"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'solidus_auth_devise'
4
- require 'devise'
5
- require 'devise-encryptable'
6
- require 'spree/auth/version'
3
+ require "solidus_auth_devise"
4
+ require "devise"
5
+ require "devise-encryptable"
6
+ require "spree/auth/version"
7
7
 
8
8
  module Spree
9
9
  module Auth
@@ -11,23 +11,19 @@ module Spree
11
11
  include SolidusSupport::EngineExtensions
12
12
 
13
13
  isolate_namespace Spree
14
- engine_name 'solidus_auth'
14
+ engine_name "solidus_auth"
15
+
16
+ Spree.user_class = "Spree::User"
15
17
 
16
18
  initializer "spree.auth.environment", before: :load_config_initializers do |_app|
17
- require 'spree/auth_configuration'
19
+ require "spree/auth_configuration"
18
20
 
19
21
  Spree::Auth::Config = Spree::AuthConfiguration.new
20
22
  end
21
23
 
22
- initializer "solidus_auth_devise.set_user_class", after: :load_config_initializers do
23
- Spree.user_class = "Spree::User"
24
- end
25
-
26
24
  config.to_prepare do
27
25
  Spree::Auth::Engine.prepare_backend if SolidusSupport.backend_available?
28
26
  Spree::Auth::Engine.prepare_frontend if SolidusSupport.frontend_available?
29
-
30
- ApplicationController.include Spree::AuthenticationHelpers
31
27
  end
32
28
 
33
29
  def self.redirect_back_on_unauthorized?
@@ -51,7 +47,7 @@ module Spree
51
47
  def self.prepare_backend
52
48
  Spree::Admin::BaseController.unauthorized_redirect = -> do
53
49
  if spree_current_user
54
- flash[:error] = I18n.t('spree.authorization_failure')
50
+ flash[:error] = I18n.t("spree.authorization_failure")
55
51
 
56
52
  if Spree::Auth::Engine.redirect_back_on_unauthorized?
57
53
  redirect_back(fallback_location: spree.admin_unauthorized_path)
@@ -70,11 +66,10 @@ module Spree
70
66
  end
71
67
  end
72
68
 
73
-
74
69
  def self.prepare_frontend
75
70
  Spree::BaseController.unauthorized_redirect = -> do
76
71
  if spree_current_user
77
- flash[:error] = I18n.t('spree.authorization_failure')
72
+ flash[:error] = I18n.t("spree.authorization_failure")
78
73
 
79
74
  if Spree::Auth::Engine.redirect_back_on_unauthorized?
80
75
  redirect_back(fallback_location: spree.unauthorized_path)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'solidus_auth_devise/version'
3
+ require "solidus_auth_devise/version"
4
4
 
5
5
  module Spree
6
6
  module Auth
data/lib/tasks/auth.rake CHANGED
@@ -4,7 +4,7 @@ namespace :spree_auth do
4
4
  namespace :admin do
5
5
  desc "Create admin username and password"
6
6
  task create: :environment do
7
- require File.join(File.dirname(__FILE__), '..', '..', 'db', 'default', 'users.rb')
7
+ require File.join(File.dirname(__FILE__), "..", "..", "db", "default", "users.rb")
8
8
  puts "Done!"
9
9
  end
10
10
  end
@@ -1,41 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'lib/solidus_auth_devise/version'
3
+ require_relative "lib/solidus_auth_devise/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'solidus_auth_devise'
6
+ spec.name = "solidus_auth_devise"
7
7
  spec.version = SolidusAuthDevise::VERSION
8
- spec.authors = ['Solidus Team']
9
- spec.email = 'contact@solidus.io'
8
+ spec.authors = ["Solidus Team"]
9
+ spec.email = "contact@solidus.io"
10
10
 
11
- spec.summary = 'Provides authentication and authorization services for use with Solidus by using Devise and CanCan.'
12
- spec.homepage = 'https://github.com/solidusio/solidus_auth_devise'
13
- spec.license = 'BSD-3-Clause'
11
+ spec.summary = "Provides authentication and authorization services for use with Solidus by using Devise and CanCan."
12
+ spec.homepage = "https://github.com/solidusio/solidus_auth_devise"
13
+ spec.license = "BSD-3-Clause"
14
14
 
15
- spec.metadata['homepage_uri'] = spec.homepage
16
- spec.metadata['source_code_uri'] = 'https://github.com/solidusio/solidus_auth_devise'
17
- spec.metadata['changelog_uri'] = 'https://github.com/solidusio/solidus_auth_devise/releases'
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = "https://github.com/solidusio/solidus_auth_devise"
17
+ spec.metadata["changelog_uri"] = "https://github.com/solidusio/solidus_auth_devise/releases"
18
18
 
19
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5', '< 4')
19
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5", "< 5")
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
23
  files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
24
24
 
25
25
  spec.files = files.grep_v(%r{^(test|spec|features)/})
26
- spec.test_files = files.grep(%r{^(test|spec|features)/})
27
26
  spec.bindir = "exe"
28
27
  spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
28
  spec.require_paths = ["lib"]
30
29
 
31
- spec.add_dependency 'deface', '~> 1.0'
32
- spec.add_dependency 'devise', '~> 4.1'
33
- spec.add_dependency 'devise-encryptable', '0.2.0'
34
- spec.add_dependency 'solidus_core', ['>= 3', '< 5']
35
- spec.add_dependency 'solidus_support', '~> 0.5'
30
+ spec.add_dependency "deface", "~> 1.0"
31
+ spec.add_dependency "devise", ">= 4.1"
32
+ spec.add_dependency "devise-encryptable", "0.2.0"
33
+ spec.add_dependency "solidus_core", [">= 3", "< 5"]
34
+ spec.add_dependency "solidus_support", "~> 0.11"
36
35
 
37
- spec.add_development_dependency 'solidus_backend'
38
- spec.add_development_dependency 'solidus_frontend'
39
- spec.add_development_dependency 'solidus_dev_support', '~> 2.5'
40
- spec.add_development_dependency 'rails-controller-testing'
36
+ spec.add_development_dependency "solidus_backend"
37
+ spec.add_development_dependency "solidus_frontend"
38
+ spec.add_development_dependency "solidus_dev_support", "~> 2.10"
39
+ spec.add_development_dependency "rails-controller-testing"
41
40
  end