solidus_auth_devise 2.2.0 → 2.5.2

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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gem_release.yml +3 -8
  3. data/.github/stale.yml +17 -0
  4. data/.gitignore +12 -8
  5. data/.rubocop.yml +2 -0
  6. data/CHANGELOG.md +350 -163
  7. data/Gemfile +20 -22
  8. data/{LICENSE.md → LICENSE} +2 -2
  9. data/README.md +4 -28
  10. data/Rakefile +2 -0
  11. data/app/mailers/spree/user_mailer.rb +4 -2
  12. data/app/models/spree/user.rb +21 -19
  13. data/app/overrides/spree/admin/users/edit/_add_reset_password_form.html.erb.deface +20 -0
  14. data/bin/console +17 -0
  15. data/bin/rails +12 -4
  16. data/bin/setup +8 -0
  17. data/config/initializers/devise.rb +11 -3
  18. data/config/initializers/warden.rb +4 -2
  19. data/config/locales/en.yml +3 -1
  20. data/config/locales/it.yml +4 -4
  21. data/config/routes.rb +5 -11
  22. data/db/default/users.rb +10 -8
  23. data/db/migrate/20101026184949_create_users.rb +9 -7
  24. data/db/migrate/20101026184950_rename_columns_for_devise.rb +3 -0
  25. data/db/migrate/20101214150824_convert_user_remember_field.rb +2 -0
  26. data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +2 -0
  27. data/db/migrate/20120605211305_make_users_email_index_unique.rb +4 -2
  28. data/db/migrate/20140904000425_add_deleted_at_to_users.rb +2 -0
  29. data/db/migrate/20141002154641_add_confirmable_to_users.rb +2 -0
  30. data/db/migrate/20190125170630_add_reset_password_token_index_to_spree_users.rb +4 -2
  31. data/db/migrate/20200417153503_add_unconfirmed_email_to_spree_users.rb +7 -0
  32. data/db/seeds.rb +2 -0
  33. data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +5 -3
  34. data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +11 -8
  35. data/lib/controllers/frontend/spree/user_confirmations_controller.rb +2 -0
  36. data/lib/controllers/frontend/spree/user_passwords_controller.rb +4 -1
  37. data/lib/controllers/frontend/spree/user_registrations_controller.rb +4 -0
  38. data/lib/controllers/frontend/spree/user_sessions_controller.rb +2 -0
  39. data/lib/controllers/frontend/spree/users_controller.rb +17 -14
  40. data/lib/decorators/backend/controllers/spree/admin/base_controller_decorator.rb +20 -0
  41. data/lib/decorators/backend/controllers/spree/admin/orders/customer_details_controller_decorator.rb +22 -0
  42. data/lib/{controllers/frontend → decorators/frontend/controllers}/spree/checkout_controller_decorator.rb +29 -19
  43. data/lib/generators/solidus/auth/install/install_generator.rb +16 -4
  44. data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb +2 -0
  45. data/lib/solidus/auth.rb +2 -0
  46. data/lib/solidus_auth_devise.rb +12 -12
  47. data/lib/spree/auth/devise.rb +2 -7
  48. data/lib/spree/auth/engine.rb +51 -36
  49. data/lib/spree/auth/version.rb +1 -1
  50. data/{app/models → lib}/spree/auth_configuration.rb +2 -0
  51. data/lib/spree/authentication_helpers.rb +5 -11
  52. data/lib/tasks/auth.rake +3 -1
  53. data/lib/views/backend/spree/admin/shared/_navigation_footer.html.erb +3 -3
  54. data/lib/views/backend/spree/admin/user_passwords/edit.html.erb +4 -4
  55. data/lib/views/backend/spree/admin/user_passwords/new.html.erb +5 -7
  56. data/lib/views/backend/spree/admin/user_sessions/authorization_failure.html.erb +1 -1
  57. data/lib/views/backend/spree/admin/user_sessions/new.html.erb +9 -9
  58. data/lib/views/backend/spree/layouts/admin/_login_nav.html.erb +4 -4
  59. data/lib/views/frontend/spree/checkout/registration.html.erb +4 -4
  60. data/lib/views/frontend/spree/shared/_login.html.erb +4 -4
  61. data/lib/views/frontend/spree/shared/_login_bar_items.html.erb +3 -3
  62. data/lib/views/frontend/spree/shared/_user_form.html.erb +3 -3
  63. data/lib/views/frontend/spree/user_passwords/edit.html.erb +4 -4
  64. data/lib/views/frontend/spree/user_passwords/new.html.erb +5 -7
  65. data/lib/views/frontend/spree/user_registrations/new.html.erb +3 -3
  66. data/lib/views/frontend/spree/user_sessions/authorization_failure.html.erb +1 -1
  67. data/lib/views/frontend/spree/user_sessions/new.html.erb +2 -2
  68. data/lib/views/frontend/spree/users/edit.html.erb +2 -2
  69. data/lib/views/frontend/spree/users/show.html.erb +13 -13
  70. data/solidus_auth_devise.gemspec +40 -35
  71. data/spec/controllers/spree/admin/base_controller_spec.rb +53 -0
  72. data/spec/controllers/spree/admin/user_passwords_controller_spec.rb +2 -0
  73. data/spec/controllers/spree/base_controller_spec.rb +53 -0
  74. data/spec/controllers/spree/checkout_controller_spec.rb +5 -9
  75. data/spec/controllers/spree/products_controller_spec.rb +5 -8
  76. data/spec/controllers/spree/user_passwords_controller_spec.rb +4 -3
  77. data/spec/controllers/spree/user_registrations_controller_spec.rb +3 -2
  78. data/spec/controllers/spree/user_sessions_controller_spec.rb +14 -0
  79. data/spec/controllers/spree/users_controller_spec.rb +2 -2
  80. data/spec/factories/confirmed_user.rb +5 -3
  81. data/spec/features/account_spec.rb +4 -3
  82. data/spec/features/admin/password_reset_spec.rb +66 -10
  83. data/spec/features/admin/products_spec.rb +2 -1
  84. data/spec/features/admin/sign_in_spec.rb +2 -1
  85. data/spec/features/admin/sign_out_spec.rb +2 -1
  86. data/spec/features/admin_permissions_spec.rb +2 -1
  87. data/spec/features/change_email_spec.rb +3 -2
  88. data/spec/features/checkout_spec.rb +14 -37
  89. data/spec/features/confirmation_spec.rb +4 -3
  90. data/spec/features/order_spec.rb +2 -1
  91. data/spec/features/password_reset_spec.rb +23 -10
  92. data/spec/features/sign_in_spec.rb +2 -1
  93. data/spec/features/sign_out_spec.rb +4 -3
  94. data/spec/features/sign_up_spec.rb +2 -1
  95. data/spec/mailers/user_mailer_spec.rb +2 -1
  96. data/spec/models/order_spec.rb +2 -1
  97. data/spec/models/user_spec.rb +15 -9
  98. data/spec/spec_helper.rb +13 -9
  99. data/spec/support/ability.rb +3 -1
  100. data/spec/support/authentication_helpers.rb +2 -0
  101. data/spec/support/confirm_helpers.rb +21 -10
  102. data/spec/support/email.rb +2 -0
  103. data/spec/support/features/fill_addresses_fields.rb +29 -0
  104. data/spec/support/preferences.rb +10 -2
  105. data/spec/support/spree.rb +2 -0
  106. metadata +305 -212
  107. data/.travis.yml +0 -18
  108. data/app/overrides/auth_admin_login_navigation_bar.rb +0 -10
  109. data/app/overrides/auth_shared_login_bar.rb +0 -10
  110. data/lib/assets/javascripts/spree/backend/solidus_auth.js +0 -1
  111. data/lib/assets/javascripts/spree/frontend/solidus_auth.js +0 -1
  112. data/lib/assets/stylesheets/spree/backend/solidus_auth.css +0 -3
  113. data/lib/assets/stylesheets/spree/frontend/solidus_auth.css +0 -3
  114. data/lib/controllers/backend/spree/admin/admin_controller_decorator.rb +0 -11
  115. data/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb +0 -15
  116. data/spec/features/admin/orders_spec.rb +0 -30
data/Gemfile CHANGED
@@ -1,31 +1,29 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
2
5
 
3
6
  branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
4
- gem "solidus", github: "solidusio/solidus", branch: branch
7
+ gem 'solidus', github: 'solidusio/solidus', branch: branch
5
8
 
6
- group :test do
7
- if branch == 'master' || branch >= "v2.0"
8
- gem 'rails-controller-testing', '~> 1.0'
9
- else
10
- gem "rails_test_params_backport"
11
- end
12
- if branch < "v2.5"
13
- gem 'factory_bot', '4.10.0'
14
- else
15
- gem 'factory_bot', '> 4.10.0'
16
- end
17
- end
9
+ # Needed to help Bundler figure out how to resolve dependencies,
10
+ # otherwise it takes forever to resolve them.
11
+ # See https://github.com/bundler/bundler/issues/6677
12
+ gem 'rails', '>0.a'
18
13
 
19
- if ENV['DB'] == 'mysql'
20
- gem 'mysql2', '~> 0.4.10'
14
+ case ENV['DB']
15
+ when 'mysql'
16
+ gem 'mysql2'
17
+ when 'postgresql'
18
+ gem 'pg'
21
19
  else
22
- gem 'pg', '~> 0.21'
20
+ gem 'sqlite3'
23
21
  end
24
22
 
25
- group :development, :test do
26
- gem 'pry-rails', '~> 0.3.9'
27
- end
28
-
29
- gem 'deface', '~> 1.3', require: false
23
+ gem 'rails-controller-testing', group: :test
30
24
 
31
25
  gemspec
26
+
27
+ # Use a local Gemfile to include development dependencies that might not be
28
+ # relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`.
29
+ eval_gemfile 'Gemfile-local' if File.exist? 'Gemfile-local'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014, Spree Commerce, Inc. and other contributors
1
+ Copyright (c) 2020 Solidus Team
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -9,7 +9,7 @@ are permitted provided that the following conditions are met:
9
9
  * Redistributions in binary form must reproduce the above copyright notice,
10
10
  this list of conditions and the following disclaimer in the documentation
11
11
  and/or other materials provided with the distribution.
12
- * Neither the name Spree nor the names of its contributors may be used to
12
+ * Neither the name Solidus nor the names of its contributors may be used to
13
13
  endorse or promote products derived from this software without specific
14
14
  prior written permission.
15
15
 
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  Solidus Auth (Devise)
2
2
  =====================
3
3
 
4
+ [![CircleCI](https://circleci.com/gh/solidusio/solidus_auth_devise.svg?style=svg)](https://circleci.com/gh/solidusio/solidus_auth_devise)
5
+
4
6
  Provides authentication services for Solidus, using the Devise gem.
5
7
 
6
8
  Installation
@@ -94,32 +96,6 @@ Run the following to automatically build a dummy app if necessary and run the te
94
96
  bundle exec rake
95
97
  ```
96
98
 
97
- Releasing
98
- ---------
99
-
100
- We use [gem-release](https://github.com/svenfuchs/gem-release) to release this
101
- extension with ease.
102
-
103
- Supposing you are on the master branch and you are working on a fork of this
104
- extension, `upstream` is the main remote and you have write access to it, you
105
- can simply run:
106
-
107
- ```
108
- gem bump --version minor --tag --release
109
- ```
99
+ ## Releasing a new version
110
100
 
111
- This command will:
112
-
113
- - bump the gem version to the next minor (changing the `version.rb` file)
114
- - commit the change and push it to upstream master
115
- - create a git tag
116
- - push the tag to the upstream remote
117
- - release the new version on RubyGems
118
-
119
- Or you can run these commands individually:
120
-
121
- ```
122
- gem bump --version minor
123
- gem tag
124
- gem release
125
- ```
101
+ Please refer to the dedicated [page](https://github.com/solidusio/solidus/wiki/How-to-release-extensions) on Solidus wiki.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  Bundler::GemHelper.install_tasks
3
5
 
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Spree
2
4
  class UserMailer < BaseMailer
3
- def reset_password_instructions(user, token, *args)
5
+ def reset_password_instructions(user, token, *_args)
4
6
  @store = Spree::Store.default
5
7
  @edit_password_reset_url = spree.edit_spree_user_password_url(reset_password_token: token, host: @store.url)
6
8
  mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, scope: [:devise, :mailer, :reset_password_instructions])}"
7
9
  end
8
10
 
9
- def confirmation_instructions(user, token, opts={})
11
+ def confirmation_instructions(user, token, _opts = {})
10
12
  @store = Spree::Store.default
11
13
  @confirmation_url = spree.spree_user_confirmation_url(confirmation_token: token, host: @store.url)
12
14
  mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, scope: [:devise, :mailer, :confirmation_instructions])}"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Spree
2
4
  class User < Spree::Base
3
5
  include UserMethods
@@ -16,10 +18,7 @@ module Spree
16
18
 
17
19
  before_validation :set_login
18
20
 
19
- users_table_name = User.table_name
20
- roles_table_name = Role.table_name
21
-
22
- scope :admin, -> { includes(:spree_roles).where("#{roles_table_name}.name" => "admin") }
21
+ scope :admin, -> { includes(:spree_roles).where("#{Role.table_name}.name" => "admin") }
23
22
 
24
23
  def self.admin_created?
25
24
  User.admin.count > 0
@@ -34,23 +33,26 @@ module Spree
34
33
  end
35
34
 
36
35
  protected
37
- def password_required?
38
- !persisted? || password.present? || password_confirmation.present?
39
- end
36
+
37
+ def password_required?
38
+ !persisted? || password.present? || password_confirmation.present?
39
+ end
40
40
 
41
41
  private
42
42
 
43
- def set_login
44
- # for now force login to be same as email, eventually we will make this configurable, etc.
45
- self.login ||= self.email if self.email
46
- end
47
-
48
- def scramble_email_and_password
49
- self.email = SecureRandom.uuid + "@example.net"
50
- self.login = self.email
51
- self.password = SecureRandom.hex(8)
52
- self.password_confirmation = self.password
53
- self.save
54
- end
43
+ def set_login
44
+ # for now force login to be same as email, eventually we will make this configurable, etc.
45
+ self.login ||= email if email
46
+ end
47
+
48
+ def scramble_email_and_password
49
+ return true if destroyed?
50
+
51
+ self.email = SecureRandom.uuid + "@example.net"
52
+ self.login = email
53
+ self.password = SecureRandom.hex(8)
54
+ self.password_confirmation = password
55
+ save
56
+ end
55
57
  end
56
58
  end
@@ -0,0 +1,20 @@
1
+ <!--
2
+ insert_before "fieldset#admin_user_edit_api_key"
3
+ original "904c52ff702412d1dc8d55ff44d87d7f581f6675"
4
+ -->
5
+
6
+ <% if @user != try_spree_current_user %>
7
+ <fieldset class="no-border-bottom" data-hook="admin_user_reset_password">
8
+ <legend><%= t(:'spree.forgot_password') %></legend>
9
+
10
+ <%= form_for [:admin, @user], as: :spree_user, url: admin_reset_password_path, method: :post do |f| %>
11
+ <%= f.hidden_field :email, value: @user.email %>
12
+
13
+ <% if can?(:update, @user) %>
14
+ <div class="align-center">
15
+ <%= f.submit Spree.user_class.human_attribute_name(:reset_password), class: "button primary" %>
16
+ </div>
17
+ <% end %>
18
+ <% end %>
19
+ </fieldset>
20
+ <% end %>
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # frozen_string_literal: true
4
+
5
+ require "bundler/setup"
6
+ require "solidus_auth_devise"
7
+
8
+ # You can add fixtures and/or initialization code here to make experimenting
9
+ # with your gem easier. You can also use a different console, if you like.
10
+ $LOAD_PATH.unshift(*Dir["#{__dir__}/../app/*"])
11
+
12
+ # (If you use this, don't forget to add pry to your Gemfile!)
13
+ # require "pry"
14
+ # Pry.start
15
+
16
+ require "irb"
17
+ IRB.start(__FILE__)
data/bin/rails CHANGED
@@ -1,7 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
- ENGINE_PATH = File.expand_path('../../lib/spree/auth/engine', __FILE__)
3
+ # frozen_string_literal: true
5
4
 
6
- require 'rails/all'
7
- require 'rails/engine/commands'
5
+ app_root = 'spec/dummy'
6
+
7
+ unless File.exist? "#{app_root}/bin/rails"
8
+ system "bin/rake", app_root or begin # rubocop:disable Style/AndOr
9
+ warn "Automatic creation of the dummy app failed"
10
+ exit 1
11
+ end
12
+ end
13
+
14
+ Dir.chdir app_root
15
+ exec 'bin/rails', *ARGV
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ gem install bundler --conservative
7
+ bundle update
8
+ bundle exec rake clobber
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Use this hook to configure devise mailer, warden hooks and so forth. The first
2
4
  # four configuration values can also be set straight in your models.
3
5
  Devise.setup do |config|
@@ -29,7 +31,7 @@ Devise.setup do |config|
29
31
  config.http_authenticatable = true
30
32
 
31
33
  # Set this to true to use Basic Auth for AJAX requests. True by default.
32
- #config.http_authenticatable_on_xhr = false
34
+ # config.http_authenticatable_on_xhr = false
33
35
 
34
36
  # The realm used in Http Basic Authentication
35
37
  config.http_authentication_realm = 'Spree Application'
@@ -41,7 +43,11 @@ Devise.setup do |config|
41
43
  config.encryptor = 'authlogic_sha512'
42
44
 
43
45
  # Setup a pepper to generate the encrypted password.
44
- config.pepper = Rails.configuration.secret_token
46
+ config.pepper = if Rails.configuration.respond_to?(:secret_token) && Rails.configuration.secret_token.present?
47
+ Rails.configuration.secret_token
48
+ else
49
+ Rails.configuration.secret_key_base
50
+ end
45
51
 
46
52
  # ==> Configuration for :confirmable
47
53
  # The time you want to give your user to confirm his account. During this time
@@ -114,6 +120,9 @@ Devise.setup do |config|
114
120
  # should add them to the navigational formats lists. Default is [:html]
115
121
  config.navigational_formats = [:html, :json, :xml]
116
122
 
123
+ # The default HTTP method used to sign out a resource. Default is :delete.
124
+ config.sign_out_via = :delete
125
+
117
126
  # ==> Warden configuration
118
127
  # If you want to use other strategies, that are not (yet) supported by Devise,
119
128
  # you can configure them inside the config.warden block. The example below
@@ -132,7 +141,6 @@ Devise.setup do |config|
132
141
  # Don't put a too small interval or your users won't have the time to
133
142
  # change their passwords.
134
143
  config.reset_password_within = 6.hours
135
- config.sign_out_via = :get
136
144
 
137
145
  config.case_insensitive_keys = [:email]
138
146
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Merges users orders to their account after sign in and sign up.
2
- Warden::Manager.after_set_user except: :fetch do |user, auth, opts|
4
+ Warden::Manager.after_set_user except: :fetch do |user, auth, _opts|
3
5
  if auth.cookies.signed[:guest_token].present?
4
6
  if user.is_a?(Spree::User)
5
7
  Spree::Order.incomplete.where(guest_token: auth.cookies.signed[:guest_token], user_id: nil).each do |order|
@@ -9,6 +11,6 @@ Warden::Manager.after_set_user except: :fetch do |user, auth, opts|
9
11
  end
10
12
  end
11
13
 
12
- Warden::Manager.before_logout do |user, auth, opts|
14
+ Warden::Manager.before_logout do |_user, auth, _opts|
13
15
  auth.cookies.delete :guest_token
14
16
  end
@@ -33,8 +33,10 @@ en:
33
33
  spree_user:
34
34
  cannot_be_blank: Your password cannot be blank.
35
35
  no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
36
- send_instructions: You will receive an email with instructions about how to reset your password in a few minutes.
36
+ send_instructions: If an account with that email address exists, you will receive an email with instructions about how to reset your password in a few minutes.
37
37
  updated: Your password was changed successfully. You are now signed in.
38
+ passwords:
39
+ send_instructions: If an account with that email address exists, you will receive an email with instructions about how to reset your password in a few minutes.
38
40
  user_registrations:
39
41
  destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
40
42
  inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}.'
@@ -1,8 +1,8 @@
1
+ ---
1
2
  it:
2
3
  spree:
3
- admin:
4
- tab:
5
- users: Utenti
4
+ admin_login: Login Amministrazione
5
+ change_my_password: Cambia la password
6
6
  devise:
7
7
  confirmations:
8
8
  confirmed: Il tuo account è stato correttamente confermato. Ora sei collegato.
@@ -65,9 +65,9 @@ it:
65
65
  signed_out: Uscito correttamente.
66
66
  errors:
67
67
  messages:
68
- email_is_invalid: L'indirizzo email non può essere vuoto
69
68
  already_confirmed: è stato già confermato
70
69
  confirmation_period_expired: deve essere confermato entro %{period}, richiedi una nuova conferma
70
+ email_is_invalid: L'indirizzo email non può essere vuoto
71
71
  expired: è scaduto, si prega di richiederne uno nuovo
72
72
  not_found: non trovato
73
73
  not_locked: non era bloccato
@@ -1,9 +1,7 @@
1
- Spree::Core::Engine.routes.draw do
2
- if (
3
- SolidusSupport.frontend_available? &&
4
- Spree::Auth::Config.draw_frontend_routes
5
- )
1
+ # frozen_string_literal: true
6
2
 
3
+ Spree::Core::Engine.routes.draw do
4
+ if SolidusSupport.frontend_available? && Spree::Auth::Config.draw_frontend_routes
7
5
  devise_for(:spree_user, {
8
6
  class_name: 'Spree::User',
9
7
  controllers: {
@@ -39,11 +37,7 @@ Spree::Core::Engine.routes.draw do
39
37
  resource :account, controller: 'users'
40
38
  end
41
39
 
42
- if (
43
- SolidusSupport.backend_available? &&
44
- Spree::Auth::Config.draw_backend_routes
45
- )
46
-
40
+ if SolidusSupport.backend_available? && Spree::Auth::Config.draw_backend_routes
47
41
  namespace :admin do
48
42
  devise_for(:spree_user, {
49
43
  class_name: 'Spree::User',
@@ -61,7 +55,7 @@ Spree::Core::Engine.routes.draw do
61
55
  get '/authorization_failure', to: 'user_sessions#authorization_failure', as: :unauthorized
62
56
  get '/login', to: 'user_sessions#new', as: :login
63
57
  post '/login', to: 'user_sessions#create', as: :create_new_session
64
- get '/logout', to: 'user_sessions#destroy', as: :logout
58
+ match '/logout', to: 'user_sessions#destroy', as: :logout, via: Devise.sign_out_via
65
59
 
66
60
  get '/password/recover', to: 'user_passwords#new', as: :recover_password
67
61
  post '/password/recover', to: 'user_passwords#create', as: :reset_password
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # see last line where we create an admin if there is none, asking for email and password
2
4
  def prompt_for_admin_password
3
5
  if ENV['ADMIN_PASSWORD']
@@ -31,20 +33,20 @@ def create_admin_user
31
33
  email = 'admin@example.com'
32
34
  else
33
35
  puts 'Create the admin user (press enter for defaults).'
34
- #name = prompt_for_admin_name unless name
36
+ # name = prompt_for_admin_name unless name
35
37
  email = prompt_for_admin_email
36
38
  password = prompt_for_admin_password
37
39
  end
38
40
  attributes = {
39
- :password => password,
40
- :password_confirmation => password,
41
- :email => email,
42
- :login => email
41
+ password: password,
42
+ password_confirmation: password,
43
+ email: email,
44
+ login: email
43
45
  }
44
46
 
45
47
  load 'spree/user.rb'
46
48
 
47
- if Spree::User.find_by_email(email)
49
+ if Spree::User.find_by(email: email)
48
50
  puts "\nWARNING: There is already a user with the email: #{email}, so no account changes were made. If you wish to create an additional admin user, please run rake spree_auth:admin:create again with a different email.\n\n"
49
51
  else
50
52
  admin = Spree::User.new(attributes)
@@ -55,7 +57,7 @@ def create_admin_user
55
57
  admin.generate_spree_api_key!
56
58
  puts "Done!"
57
59
  else
58
- puts "There was some problems with persisting new admin user:"
60
+ puts "There were some problems with persisting a new admin user:"
59
61
  admin.errors.full_messages.each do |error|
60
62
  puts error
61
63
  end
@@ -66,7 +68,7 @@ end
66
68
  if Spree::User.admin.empty?
67
69
  create_admin_user
68
70
  else
69
- puts 'Admin user has already been previously created.'
71
+ puts 'Admin user has already been created.'
70
72
  puts 'Would you like to create a new admin user? (yes/no)'
71
73
  if ["yes", "y"].include? STDIN.gets.strip.downcase
72
74
  create_admin_user