spree_auth_devise 4.1.0.rc1 → 4.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.

Potentially problematic release.


This version of spree_auth_devise might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11fab6b968334f977554a9a95b6a80e37047b42add498201ea0db74ca0701a6a
4
- data.tar.gz: cab55c1d0e6344a72c5e11ee8621f43fce3787d99e412515bf9f8059a1727e7c
3
+ metadata.gz: 7803bda30cc0ed9cca3df5b201c6f53e53ed57841dd26c18eecaad80888779e6
4
+ data.tar.gz: 615ee2f16b67ed9e082c55c2f3b011ffedd363f7ac83d392819ef6a8f24da7b0
5
5
  SHA512:
6
- metadata.gz: 83bfc852ef5ac9cd03c19f6a9f8bcbdd17aac744d565102777f4ef1b2910f53d80b6663eee3d7f1dce2dc6f66f0e553270f366086f8e303963f995b72b9d8598
7
- data.tar.gz: 66b5fe7c4364a068ee0b2169713480afb3b0064cc3c883f0ddbf6ee6086cd9b5caac2058b2c5c2cab9da82230a6441659df89ce071bc973a2278fd50a73e5341
6
+ metadata.gz: f2fddae86244f213dcdb77ab7f4ef0658b8d9ca3255b43b7d3e53ca0f750479ce0b0d7b80ec59d7a820aa0f17ee670a5b6fd34a485b826681f73b0b972a484bd
7
+ data.tar.gz: ec8035b779912362315ada27d8ab6bc69152609e7776d155e7f14a8a2a4fa7920d0e0a89d16968b55cef5e018bcbe967cb70f767917c077915ed40b19cdf1672
data/README.md CHANGED
@@ -10,20 +10,11 @@ Provides authentication services for [Spree](https://spreecommerce.org), using t
10
10
 
11
11
  1. Add this extension to your Gemfile with this line:
12
12
 
13
- #### Spree >= 3.1
14
-
15
- ```ruby
16
- gem 'spree_auth_devise', '~> 3.3'
17
- ```
18
-
19
- #### Spree 3.0 and Spree 2.x
20
-
21
13
  ```ruby
22
- gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: 'X-X-stable'
14
+ gem 'spree_auth_devise'
23
15
  ```
24
-
25
- The `branch` option is important: it must match the version of Spree you're using.
26
- For example, use `3-0-stable` if you're using Spree `3-0-stable` or any `3.0.x` version.
16
+
17
+ if you run into any version-mismatch problems please run `bundle update`
27
18
 
28
19
  2. Install the gem using Bundler:
29
20
  ```ruby
@@ -7,7 +7,29 @@ class Spree::UserConfirmationsController < Devise::ConfirmationsController
7
7
  include Spree::Core::ControllerHelpers::Store
8
8
 
9
9
  before_action :set_current_order
10
-
10
+
11
+ # GET /resource/confirmation?confirmation_token=abcdef
12
+ def show
13
+ self.resource = resource_class.confirm_by_token(params[:confirmation_token])
14
+ yield resource if block_given?
15
+
16
+ if resource.errors.empty?
17
+ set_flash_message!(:notice, :confirmed)
18
+ respond_with_navigational(resource) do
19
+ redirect_to after_confirmation_path_for(resource_name, resource)
20
+ end
21
+ elsif resource.confirmed?
22
+ set_flash_message(:error, :already_confirmed)
23
+ respond_with_navigational(resource) do
24
+ redirect_to after_confirmation_path_for(resource_name, resource)
25
+ end
26
+ else
27
+ respond_with_navigational(resource.errors, status: :unprocessable_entity) do
28
+ render :new
29
+ end
30
+ end
31
+ end
32
+
11
33
  protected
12
34
 
13
35
  def after_confirmation_path_for(resource_name, resource)
@@ -30,7 +30,7 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
30
30
  set_flash_message :notice, :signed_up
31
31
  sign_up(resource_name, resource)
32
32
  session[:spree_user_signup] = true
33
- respond_with resource, location: after_sign_up_path_for(resource)
33
+ redirect_to_checkout_or_account_path(resource)
34
34
  else
35
35
  set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}"
36
36
  expire_data_after_sign_in!
@@ -80,6 +80,13 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
80
80
  after_sign_in_redirect(resource) if is_navigational_format?
81
81
  end
82
82
 
83
+ def after_inactive_sign_up_path_for(resource)
84
+ scope = Devise::Mapping.find_scope!(resource)
85
+ router_name = Devise.mappings[scope].router_name
86
+ context = router_name ? send(router_name) : self
87
+ context.respond_to?(:login_path) ? context.login_path : "/login"
88
+ end
89
+
83
90
  private
84
91
 
85
92
  def spree_user_params
@@ -89,4 +96,14 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
89
96
  def after_sign_in_redirect(resource_or_scope)
90
97
  stored_location_for(resource_or_scope) || account_path
91
98
  end
99
+
100
+ def redirect_to_checkout_or_account_path(resource)
101
+ resource_path = after_sign_up_path_for(resource)
102
+
103
+ if resource_path == spree.checkout_state_path(:address)
104
+ respond_with resource, location: spree.checkout_state_path(:address)
105
+ else
106
+ respond_with resource, location: spree.account_path
107
+ end
108
+ end
92
109
  end
@@ -8,10 +8,9 @@
8
8
  <div class="card-body">
9
9
  <p><%= Spree.t(:instructions_to_reset_password) %></p>
10
10
 
11
- <%= form_for Spree::User.new, as: :spree_user, url: spree.reset_password_path do |f| %>
11
+ <%= form_for Spree.user_class.new, as: :spree_user, url: spree.reset_password_path do |f| %>
12
12
  <div class="form-group">
13
- <%= f.label :email, Spree.t(:email), class: 'spree-flat-label' %>
14
- <%= f.email_field :email, class: "spree-flat-input" %>
13
+ <%= f.email_field :email, class: "spree-flat-input", placeholder: Spree.t(:email) %>
15
14
  </div>
16
15
  <div>
17
16
  <%= f.submit Spree.t(:reset_password), class: 'btn btn-primary btn-block spree-btn mt-2' %>
@@ -9,6 +9,8 @@ en:
9
9
  confirmations:
10
10
  confirmed: Your account was successfully confirmed. You are now signed in.
11
11
  send_instructions: You will receive an email with instructions about how to confirm your account in a few minutes.
12
+ spree_user:
13
+ already_confirmed: Email was already confirmed, please try signing in.
12
14
  failure:
13
15
  inactive: Your account was not activated yet.
14
16
  invalid: Invalid email or password.
@@ -41,7 +43,7 @@ en:
41
43
  user_registrations:
42
44
  destroyed: Bye! Your account was successfully cancelled. We hope to see you again soon.
43
45
  inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}.'
44
- signed_up_but_unconfirmed: You have signed up successfully.
46
+ signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
45
47
  signed_up: Welcome! You have signed up successfully.
46
48
  updated: You updated your account successfully.
47
49
  user_sessions:
@@ -1,6 +1,6 @@
1
1
  Spree::Core::Engine.add_routes do
2
2
  devise_for :spree_user,
3
- class_name: 'Spree::User',
3
+ class_name: Spree.user_class.to_s,
4
4
  controllers: { sessions: 'spree/user_sessions',
5
5
  registrations: 'spree/user_registrations',
6
6
  passwords: 'spree/user_passwords',
@@ -31,7 +31,7 @@ Spree::Core::Engine.add_routes do
31
31
 
32
32
  namespace :admin, path: Spree.admin_path do
33
33
  devise_for :spree_user,
34
- class_name: 'Spree::User',
34
+ class_name: Spree.user_class.to_s,
35
35
  controllers: { sessions: 'spree/admin/user_sessions',
36
36
  passwords: 'spree/admin/user_passwords' },
37
37
  skip: [:unlocks, :omniauth_callbacks, :registrations],
@@ -1,7 +1,7 @@
1
1
  class AddResetPasswordSentAtToSpreeUsers < SpreeExtension::Migration[4.2]
2
2
  def change
3
- Spree::User.reset_column_information
4
- unless Spree::User.column_names.include?("reset_password_sent_at")
3
+ Spree.user_class.reset_column_information
4
+ unless Spree.user_class.column_names.include?("reset_password_sent_at")
5
5
  add_column :spree_users, :reset_password_sent_at, :datetime
6
6
  end
7
7
  end
@@ -6,7 +6,7 @@ module Spree::CheckoutControllerDecorator
6
6
  end
7
7
 
8
8
  def registration
9
- @user = Spree::User.new
9
+ @user = Spree.user_class.new
10
10
  end
11
11
 
12
12
  def update_registration
@@ -14,7 +14,7 @@ module Spree::CheckoutControllerDecorator
14
14
  redirect_to spree.checkout_state_path(:address)
15
15
  else
16
16
  flash[:error] = t(:email_is_invalid, scope: [:errors, :messages])
17
- @user = Spree::User.new
17
+ @user = Spree.user_class.new
18
18
  render 'registration'
19
19
  end
20
20
  end
@@ -10,7 +10,7 @@ class Spree::UsersController < Spree::StoreController
10
10
  end
11
11
 
12
12
  def create
13
- @user = Spree::User.new(user_params)
13
+ @user = Spree.user_class.new(user_params)
14
14
  if @user.save
15
15
 
16
16
  if current_order
@@ -27,7 +27,7 @@ class Spree::UsersController < Spree::StoreController
27
27
  if @user.update(user_params)
28
28
  if params[:user][:password].present?
29
29
  # this logic needed b/c devise wants to log us out after password changes
30
- Spree::User.reset_password_by_token(params[:user])
30
+ Spree.user_class.reset_password_by_token(params[:user])
31
31
  if Spree::Auth::Config[:signout_after_password_change]
32
32
  sign_in(@user, event: :authentication)
33
33
  else
@@ -52,7 +52,7 @@ class Spree::UsersController < Spree::StoreController
52
52
  end
53
53
 
54
54
  def authorize_actions
55
- authorize! params[:action].to_sym, Spree::User.new
55
+ authorize! params[:action].to_sym, Spree.user_class.new
56
56
  end
57
57
 
58
58
  def accurate_title
@@ -5,7 +5,7 @@
5
5
 
6
6
  <p><%= Spree.t(:instructions_to_reset_password) %></p>
7
7
 
8
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.reset_password_path do |f| %>
8
+ <%= form_for Spree.user_class.new, :as => :spree_user, :url => spree.reset_password_path do |f| %>
9
9
  <p>
10
10
  <%= f.label :email, Spree.t(:email) %><br />
11
11
  <%= f.email_field :email %>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div data-hook="login" class="card border-0">
6
6
  <div class="card-body">
7
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.admin_create_new_session_path do |f| %>
7
+ <%= form_for Spree.user_class.new, :as => :spree_user, :url => spree.admin_create_new_session_path do |f| %>
8
8
  <div id="password-credentials">
9
9
  <div class="form-group text-center">
10
10
  <%= f.label :email, Spree.t(:email) %>
@@ -25,7 +25,7 @@ RSpec.describe Spree::UserRegistrationsController, type: :controller do
25
25
  order = create(:order, guest_token: 'ABC', user_id: nil, created_by_id: nil)
26
26
  end
27
27
  post :create, params: { spree_user: { email: 'foobar@example.com', password: 'foobar123', password_confirmation: 'foobar123' }}
28
- user = Spree::User.find_by_email('foobar@example.com')
28
+ user = Spree.user_class.find_by_email('foobar@example.com')
29
29
 
30
30
  order.reload
31
31
  expect(order.user_id).to eq user.id
@@ -126,7 +126,7 @@ RSpec.feature 'Checkout', :js, type: :feature do
126
126
  click_button 'Save and Continue'
127
127
 
128
128
  expect(page).to have_text 'Order placed successfully'
129
- expect(Spree::Order.first.user).to eq Spree::User.find_by_email('test@person.com')
129
+ expect(Spree::Order.first.user).to eq Spree.user_class.find_by_email('test@person.com')
130
130
  end
131
131
  end
132
132
  end
@@ -20,7 +20,7 @@ RSpec.feature 'Confirmation', type: :feature, reload_user: true do
20
20
  fill_in 'Password Confirmation', with: 'password'
21
21
  click_button 'Sign Up'
22
22
 
23
- expect(page).to have_text 'You have signed up successfully.'
24
- expect(Spree::User.last.confirmed?).to be(false)
23
+ expect(page).to have_text I18n.t('devise.user_registrations.signed_up_but_unconfirmed')
24
+ expect(Spree.user_class.last.confirmed?).to be(false)
25
25
  end
26
26
  end
@@ -10,7 +10,7 @@ RSpec.feature 'Sign Up', type: :feature do
10
10
  click_button 'Sign Up'
11
11
 
12
12
  expect(page).to have_text 'You have signed up successfully.'
13
- expect(Spree::User.count).to eq(1)
13
+ expect(Spree.user_class.count).to eq(1)
14
14
  end
15
15
  end
16
16
 
@@ -25,7 +25,7 @@ RSpec.feature 'Sign Up', type: :feature do
25
25
  click_button 'Sign Up'
26
26
 
27
27
  expect(page).to have_css '#errorExplanation'
28
- expect(Spree::User.count).to eq(0)
28
+ expect(Spree.user_class.count).to eq(0)
29
29
  end
30
30
  end
31
31
  end
@@ -31,9 +31,9 @@ RSpec.describe Spree::User, type: :model do
31
31
  order.save
32
32
  user = order.user
33
33
  user.destroy
34
- expect(Spree::User.find_by_id(user.id)).to be_nil
35
- expect(Spree::User.with_deleted.find_by_id(user.id).id).to eq(user.id)
36
- expect(Spree::User.with_deleted.find_by_id(user.id).orders.first).to eq(order)
34
+ expect(Spree.user_class.find_by_id(user.id)).to be_nil
35
+ expect(Spree.user_class.with_deleted.find_by_id(user.id).id).to eq(user.id)
36
+ expect(Spree.user_class.with_deleted.find_by_id(user.id).orders.first).to eq(order)
37
37
 
38
38
  expect(Spree::Order.find_by_user_id(user.id)).not_to be_nil
39
39
  expect(Spree::Order.where(user_id: user.id).first).to eq(order)
@@ -67,13 +67,13 @@ RSpec.describe Spree::User, type: :model do
67
67
  it "is confirmable if the confirmable option is enabled" do
68
68
  set_confirmable_option(true)
69
69
  Spree::UserMailer.stub(:confirmation_instructions).and_return(double(deliver: true))
70
- expect(Spree::User.devise_modules).to include(:confirmable)
70
+ expect(Spree.user_class.devise_modules).to include(:confirmable)
71
71
  set_confirmable_option(false)
72
72
  end
73
73
 
74
74
  it "is not confirmable if the confirmable option is disabled" do
75
75
  set_confirmable_option(false)
76
- expect(Spree::User.devise_modules).to_not include(:confirmable)
76
+ expect(Spree.user_class.devise_modules).to_not include(:confirmable)
77
77
  end
78
78
  end
79
79
  end
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |s|
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.name = 'spree_auth_devise'
6
- s.version = '4.1.0.rc1'
6
+ s.version = '4.1.0'
7
7
  s.summary = 'Provides authentication and authorization services for use with Spree by using Devise and CanCan.'
8
8
  s.description = s.summary
9
9
 
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
  s.add_development_dependency 'rspec-rails', '~> 4.0.0.beta2'
46
46
  s.add_development_dependency 'sass-rails'
47
47
  s.add_development_dependency 'selenium-webdriver'
48
- s.add_development_dependency 'shoulda-matchers', '~> 3.1'
48
+ s.add_development_dependency 'shoulda-matchers', '~> 4.3'
49
49
  s.add_development_dependency 'simplecov', '~> 0.12'
50
50
  s.add_development_dependency 'spree_backend', spree_version
51
51
  s.add_development_dependency 'spree_frontend', spree_version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_auth_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0.rc1
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-30 00:00:00.000000000 Z
11
+ date: 2020-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -330,14 +330,14 @@ dependencies:
330
330
  requirements:
331
331
  - - "~>"
332
332
  - !ruby/object:Gem::Version
333
- version: '3.1'
333
+ version: '4.3'
334
334
  type: :development
335
335
  prerelease: false
336
336
  version_requirements: !ruby/object:Gem::Requirement
337
337
  requirements:
338
338
  - - "~>"
339
339
  - !ruby/object:Gem::Version
340
- version: '3.1'
340
+ version: '4.3'
341
341
  - !ruby/object:Gem::Dependency
342
342
  name: simplecov
343
343
  requirement: !ruby/object:Gem::Requirement
@@ -561,9 +561,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
561
561
  version: 2.5.0
562
562
  required_rubygems_version: !ruby/object:Gem::Requirement
563
563
  requirements:
564
- - - ">"
564
+ - - ">="
565
565
  - !ruby/object:Gem::Version
566
- version: 1.3.1
566
+ version: '0'
567
567
  requirements:
568
568
  - none
569
569
  rubygems_version: 3.0.2