solidus_auth_devise 2.1.0 → 2.2.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +35 -0
  3. data/.gem_release.yml +10 -0
  4. data/.travis.yml +8 -14
  5. data/CHANGELOG.md +16 -0
  6. data/Gemfile +13 -5
  7. data/README.md +30 -3
  8. data/app/models/spree/user.rb +4 -0
  9. data/config/initializers/devise.rb +0 -3
  10. data/config/locales/en.yml +1 -0
  11. data/config/locales/fr.yml +1 -1
  12. data/config/routes.rb +3 -1
  13. data/db/migrate/20101026184950_rename_columns_for_devise.rb +0 -1
  14. data/db/migrate/20190125170630_add_reset_password_token_index_to_spree_users.rb +32 -0
  15. data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +2 -0
  16. data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +2 -2
  17. data/lib/controllers/frontend/spree/user_sessions_controller.rb +2 -2
  18. data/lib/controllers/frontend/spree/users_controller.rb +5 -3
  19. data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb +1 -1
  20. data/lib/spree/auth/engine.rb +2 -2
  21. data/lib/spree/auth/version.rb +7 -0
  22. data/lib/views/backend/spree/admin/shared/_navigation_footer.html.erb +12 -5
  23. data/lib/views/backend/spree/admin/user_passwords/edit.html.erb +4 -4
  24. data/lib/views/backend/spree/admin/user_passwords/new.html.erb +4 -4
  25. data/lib/views/backend/spree/admin/user_sessions/authorization_failure.html.erb +1 -1
  26. data/lib/views/backend/spree/admin/user_sessions/new.html.erb +7 -7
  27. data/lib/views/backend/spree/layouts/admin/_login_nav.html.erb +4 -4
  28. data/lib/views/frontend/spree/checkout/registration.html.erb +4 -4
  29. data/lib/views/frontend/spree/shared/_login.html.erb +4 -4
  30. data/lib/views/frontend/spree/shared/_login_bar_items.html.erb +3 -3
  31. data/lib/views/frontend/spree/shared/_user_form.html.erb +3 -3
  32. data/lib/views/frontend/spree/user_passwords/edit.html.erb +4 -4
  33. data/lib/views/frontend/spree/user_passwords/new.html.erb +4 -4
  34. data/lib/views/frontend/spree/user_registrations/new.html.erb +3 -3
  35. data/lib/views/frontend/spree/user_sessions/authorization_failure.html.erb +1 -1
  36. data/lib/views/frontend/spree/user_sessions/new.html.erb +2 -2
  37. data/lib/views/frontend/spree/users/edit.html.erb +2 -2
  38. data/lib/views/frontend/spree/users/show.html.erb +12 -12
  39. data/solidus_auth_devise.gemspec +6 -3
  40. data/spec/controllers/spree/admin/user_passwords_controller_spec.rb +12 -0
  41. data/spec/controllers/spree/checkout_controller_spec.rb +1 -1
  42. data/spec/controllers/spree/users_controller_spec.rb +25 -7
  43. data/spec/factories/confirmed_user.rb +1 -1
  44. data/spec/features/confirmation_spec.rb +4 -9
  45. data/spec/models/user_spec.rb +1 -3
  46. data/spec/support/confirm_helpers.rb +7 -5
  47. metadata +22 -18
  48. data/circle.yml +0 -6
  49. data/lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7899bdbd862830f2ef0fbf045cade336b63ab37177e0618d5ac920a079712968
4
- data.tar.gz: 987e002a8da4de12ce47df047d1aca4abcd5654eeaa0eedc0f001b04bbf36b86
3
+ metadata.gz: 559c61d1fca6c80b947025f147de804bfe73a19ee9bd5f4066c2691f3db98dab
4
+ data.tar.gz: 7de599e4f661d0265a073f9c9abe2243ed443fb5b47aaa39c2e049461afaff48
5
5
  SHA512:
6
- metadata.gz: 8aeebc8474bd07689d51cf681186326f47264b77584e127178e0da0df1a329741318f6a819c37319f4137023fbe7a4b35457dcd568335b2353ec58fee4926824
7
- data.tar.gz: 9ee65f9f2486ee2d0a3bcfc827ce963b9e424366ad1ac768d96da8f30b81c57527b34fc7be554a3cd669af06f6205f0c2081d9220aeb462b1d4cad2605658158
6
+ metadata.gz: 13f6f1323ae7d1c5fbbf7f7c02b491640a82b2b0ebfff418e11738d5161764a190673cd702ed9fef907e8d3f6e30bde15cd1b621a9ea22ac1d2f513f707dbf86
7
+ data.tar.gz: 511c01da048f75ad730af1ef56ad65b64f26483b846ddad7b1976dc7d2e51bbe57d05d61776633be9704ceac8cbff4dbdff1d7401cc04708f1fa319d65d8f1b7
@@ -0,0 +1,35 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+
20
+ workflows:
21
+ "Run specs on supported Solidus versions":
22
+ jobs:
23
+ - run-specs-with-postgres
24
+ - run-specs-with-mysql
25
+ "Weekly run specs against master":
26
+ triggers:
27
+ - schedule:
28
+ cron: "0 0 * * 4" # every Thursday
29
+ filters:
30
+ branches:
31
+ only:
32
+ - master
33
+ jobs:
34
+ - run-specs-with-postgres
35
+ - run-specs-with-mysql
@@ -0,0 +1,10 @@
1
+ bump:
2
+ file: 'lib/spree/auth/version.rb'
3
+ message: Bump Solidus Auth Devise to %{version}
4
+ remote: upstream
5
+ commit: true
6
+ push: true
7
+
8
+ tag:
9
+ push: true
10
+ remote: upstream
@@ -4,21 +4,15 @@ rvm:
4
4
  - 2.3.1
5
5
  env:
6
6
  matrix:
7
- - SOLIDUS_BRANCH=v1.2 DB=postgres
8
- - SOLIDUS_BRANCH=v1.3 DB=postgres
9
- - SOLIDUS_BRANCH=v1.4 DB=postgres
10
- - SOLIDUS_BRANCH=v2.0 DB=postgres
11
- - SOLIDUS_BRANCH=v2.1 DB=postgres
12
- - SOLIDUS_BRANCH=v2.2 DB=postgres
13
- - SOLIDUS_BRANCH=v2.3 DB=postgres
14
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
15
12
  - SOLIDUS_BRANCH=master DB=postgres
16
- - SOLIDUS_BRANCH=v1.2 DB=mysql
17
- - SOLIDUS_BRANCH=v1.3 DB=mysql
18
- - SOLIDUS_BRANCH=v1.4 DB=mysql
19
- - SOLIDUS_BRANCH=v2.0 DB=mysql
20
- - SOLIDUS_BRANCH=v2.1 DB=mysql
21
- - SOLIDUS_BRANCH=v2.2 DB=mysql
22
- - SOLIDUS_BRANCH=v2.3 DB=mysql
23
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
24
18
  - SOLIDUS_BRANCH=master DB=mysql
@@ -1,5 +1,21 @@
1
1
  ## Master (unreleased)
2
2
 
3
+ ## Solidus Auth Devise v2.2.0 (2019-06-13)
4
+
5
+ * Add DB index to `reset_password_token` field
6
+ * Add missing pessimistic versioning
7
+ * Add missing translation to `spree.change_my_password`
8
+ * Allow Spree::Admin::UserPasswordsController to be accessed from admin
9
+ * Disable backend footer profile edit link if role cannot edit users
10
+ * Fix issue with redirections using routes like `new_spree_user_session_url`
11
+ * Fix migration `20101026184950` `down` method
12
+ * Fix to not reuse spree_current_user as `@user`
13
+ * Replace Spree.t with I18n.t
14
+ * Lock mysql2 to 0.4.x
15
+ * Lock SQLite3 to version 1.3
16
+ * Remove FactoryBot warnings
17
+ * Configure CI to ensure support on ruby 2.3 + Solidus 2.4 - 2.8
18
+
3
19
  ## Solidus Auth Devise v2.1.0 (2018-01-22)
4
20
 
5
21
  * Avoid requiring deface on Solidus 2.5+.
data/Gemfile CHANGED
@@ -5,19 +5,27 @@ gem "solidus", github: "solidusio/solidus", branch: branch
5
5
 
6
6
  group :test do
7
7
  if branch == 'master' || branch >= "v2.0"
8
- gem "rails-controller-testing"
8
+ gem 'rails-controller-testing', '~> 1.0'
9
9
  else
10
10
  gem "rails_test_params_backport"
11
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
12
17
  end
13
18
 
14
- gem 'pg', '~> 0.21'
15
- gem 'mysql2'
19
+ if ENV['DB'] == 'mysql'
20
+ gem 'mysql2', '~> 0.4.10'
21
+ else
22
+ gem 'pg', '~> 0.21'
23
+ end
16
24
 
17
25
  group :development, :test do
18
- gem "pry-rails"
26
+ gem 'pry-rails', '~> 0.3.9'
19
27
  end
20
28
 
21
- gem 'deface', require: false
29
+ gem 'deface', '~> 1.3', require: false
22
30
 
23
31
  gemspec
data/README.md CHANGED
@@ -46,9 +46,6 @@ Devise.setup do |config|
46
46
  # Required so users don't lose their carts when they need to confirm.
47
47
  config.allow_unconfirmed_access_for = 1.days
48
48
 
49
- # Fixes the bug where Confirmation errors result in a broken page.
50
- config.router_name = :spree
51
-
52
49
  # Add any other devise configurations here, as they will override the defaults provided by solidus_auth_devise.
53
50
  end
54
51
  ```
@@ -96,3 +93,33 @@ Run the following to automatically build a dummy app if necessary and run the te
96
93
  ```shell
97
94
  bundle exec rake
98
95
  ```
96
+
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
+ ```
110
+
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
+ ```
@@ -29,6 +29,10 @@ module Spree
29
29
  has_spree_role?('admin')
30
30
  end
31
31
 
32
+ def confirmed?
33
+ !!confirmed_at
34
+ end
35
+
32
36
  protected
33
37
  def password_required?
34
38
  !persisted? || password.present? || password_confirmation.present?
@@ -135,7 +135,4 @@ Devise.setup do |config|
135
135
  config.sign_out_via = :get
136
136
 
137
137
  config.case_insensitive_keys = [:email]
138
-
139
- # Direct Devise to use the Spree router when attempting to find resource routes.
140
- config.router_name = :spree
141
138
  end
@@ -2,6 +2,7 @@
2
2
  en:
3
3
  spree:
4
4
  admin_login: Admin Login
5
+ change_my_password: Change my password
5
6
  devise:
6
7
  confirmations:
7
8
  confirmed: Your account was successfully confirmed. You are now signed in.
@@ -46,5 +46,5 @@ fr:
46
46
  not_found: "n'a pas été trouvé"
47
47
  not_locked: "n'a pas été bloqué"
48
48
  not_saved:
49
- one: "1 erreur interdit cette %{ressource} d'être enregistrée :"
49
+ one: "1 erreur interdit cette %{resource} d'être enregistrée :"
50
50
  other: "%{count} erreurs interdisent cette %{resource} d'être enregistrée :"
@@ -14,7 +14,8 @@ Spree::Core::Engine.routes.draw do
14
14
  },
15
15
  skip: [:unlocks, :omniauth_callbacks],
16
16
  path_names: { sign_out: 'logout' },
17
- path_prefix: :user
17
+ path_prefix: :user,
18
+ router_name: :spree
18
19
  })
19
20
 
20
21
  resources :users, only: [:edit, :update]
@@ -53,6 +54,7 @@ Spree::Core::Engine.routes.draw do
53
54
  sessions: 'spree/admin/user_sessions',
54
55
  passwords: 'spree/admin/user_passwords'
55
56
  },
57
+ router_name: :spree
56
58
  })
57
59
 
58
60
  devise_scope :spree_user do
@@ -31,7 +31,6 @@ class RenameColumnsForDevise < SolidusSupport::Migration[4.2]
31
31
  rename_column :spree_users, :remember_created_at, :remember_token_expires_at
32
32
  rename_column :spree_users, :password_salt, :salt
33
33
  rename_column :spree_users, :encrypted_password, :crypted_password
34
- add_column :spree_users, :unlock_token, :string
35
34
  add_column :spree_users, :openid_identifier, :string
36
35
  end
37
36
  end
@@ -0,0 +1,32 @@
1
+ class AddResetPasswordTokenIndexToSpreeUsers < SolidusSupport::Migration[4.2]
2
+ # We're not using the standard Rails index name because somebody could have
3
+ # already added that index to the table. By using a custom name we ensure
4
+ # that the index can effectively be added and removed via migrations/rollbacks
5
+ # without having any impact on such installations. The index name is Rails
6
+ # standard name + "_solidus_auth_devise"; the length is 61 chars which is
7
+ # still OK for Sqlite, mySQL and Postgres.
8
+ def custom_index_name
9
+ 'index_spree_users_on_reset_password_token_solidus_auth_devise'
10
+ end
11
+
12
+ def default_index_exists?
13
+ index_exists?(:spree_users, :reset_password_token)
14
+ end
15
+
16
+ def custom_index_exists?
17
+ index_exists?(:spree_users, :reset_password_token, name: custom_index_name)
18
+ end
19
+
20
+ def up
21
+ Spree::User.reset_column_information
22
+ if Spree::User.column_names.include?('reset_password_token') && !default_index_exists? && !custom_index_exists?
23
+ add_index :spree_users, :reset_password_token, unique: true, name: custom_index_name
24
+ end
25
+ end
26
+
27
+ def down
28
+ if custom_index_exists?
29
+ remove_index :spree_users, name: custom_index_name
30
+ end
31
+ end
32
+ end
@@ -8,6 +8,8 @@ class Spree::Admin::UserPasswordsController < Devise::PasswordsController
8
8
  helper 'spree/admin/navigation'
9
9
  layout 'spree/layouts/admin'
10
10
 
11
+ skip_before_action :require_no_authentication, only: [:create]
12
+
11
13
  # Overridden due to bug in Devise.
12
14
  # respond_with resource, location: new_session_path(resource_name)
13
15
  # is generating bad url /session/new.user
@@ -14,7 +14,7 @@ class Spree::Admin::UserSessionsController < Devise::SessionsController
14
14
  if spree_user_signed_in?
15
15
  respond_to do |format|
16
16
  format.html {
17
- flash[:success] = Spree.t(:logged_in_succesfully)
17
+ flash[:success] = I18n.t('spree.logged_in_succesfully')
18
18
  redirect_back_or_default(after_sign_in_path_for(spree_current_user))
19
19
  }
20
20
  format.js {
@@ -33,7 +33,7 @@ class Spree::Admin::UserSessionsController < Devise::SessionsController
33
33
 
34
34
  private
35
35
  def accurate_title
36
- Spree.t(:login)
36
+ I18n.t('spree.login')
37
37
  end
38
38
 
39
39
  def redirect_back_or_default(default)
@@ -16,7 +16,7 @@ class Spree::UserSessionsController < Devise::SessionsController
16
16
  if spree_user_signed_in?
17
17
  respond_to do |format|
18
18
  format.html do
19
- flash[:success] = Spree.t(:logged_in_succesfully)
19
+ flash[:success] = I18n.t('spree.logged_in_succesfully')
20
20
  redirect_back_or_default(after_sign_in_path_for(spree_current_user))
21
21
  end
22
22
  format.js { render success_json }
@@ -44,7 +44,7 @@ class Spree::UserSessionsController < Devise::SessionsController
44
44
  private
45
45
 
46
46
  def accurate_title
47
- Spree.t(:login)
47
+ I18n.t('spree.login')
48
48
  end
49
49
 
50
50
  def redirect_back_or_default(default)
@@ -25,13 +25,15 @@ class Spree::UsersController < Spree::StoreController
25
25
 
26
26
  def update
27
27
  if @user.update_attributes(user_params)
28
+ spree_current_user.reload
29
+
28
30
  if params[:user][:password].present?
29
31
  # this logic needed b/c devise wants to log us out after password changes
30
32
  unless Spree::Auth::Config[:signout_after_password_change]
31
33
  bypass_sign_in(@user)
32
34
  end
33
35
  end
34
- redirect_to spree.account_url, notice: Spree.t(:account_updated)
36
+ redirect_to spree.account_url, notice: I18n.t('spree.account_updated')
35
37
  else
36
38
  render :edit
37
39
  end
@@ -43,7 +45,7 @@ class Spree::UsersController < Spree::StoreController
43
45
  end
44
46
 
45
47
  def load_object
46
- @user ||= spree_current_user
48
+ @user ||= Spree::User.find_by(id: spree_current_user&.id)
47
49
  authorize! params[:action].to_sym, @user
48
50
  end
49
51
 
@@ -52,6 +54,6 @@ class Spree::UsersController < Spree::StoreController
52
54
  end
53
55
 
54
56
  def accurate_title
55
- Spree.t(:my_account)
57
+ I18n.t('spree.my_account')
56
58
  end
57
59
  end
@@ -1 +1 @@
1
- Devise.secret_key = <%= SecureRandom.hex(50).inspect %>
1
+ Devise.secret_key = SecureRandom.hex(50).inspect
@@ -36,7 +36,7 @@ module Spree
36
36
 
37
37
  Spree::Admin::BaseController.unauthorized_redirect = -> do
38
38
  if try_spree_current_user
39
- flash[:error] = Spree.t(:authorization_failure)
39
+ flash[:error] = I18n.t('spree.authorization_failure')
40
40
  redirect_to spree.admin_unauthorized_path
41
41
  else
42
42
  store_location
@@ -57,7 +57,7 @@ module Spree
57
57
 
58
58
  Spree::BaseController.unauthorized_redirect = -> do
59
59
  if try_spree_current_user
60
- flash[:error] = Spree.t(:authorization_failure)
60
+ flash[:error] = I18n.t('spree.authorization_failure')
61
61
  redirect_to spree.unauthorized_path
62
62
  else
63
63
  store_location
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Auth
5
+ VERSION = '2.2.0'
6
+ end
7
+ end
@@ -1,15 +1,22 @@
1
1
  <% if spree_current_user %>
2
2
  <ul id="login-nav" class="admin-login-nav">
3
3
  <li data-hook="user-account-link">
4
- <%= link_to spree.edit_admin_user_path(spree_current_user) do %>
5
- <i class='fa fa-user'></i>
6
- <%= spree_current_user.email %>
4
+ <% if can?(:admin, try_spree_current_user) %>
5
+ <%= link_to spree.edit_admin_user_path(try_spree_current_user) do %>
6
+ <i class='fa fa-user'></i>
7
+ <%= try_spree_current_user.email %>
8
+ <% end %>
9
+ <% else %>
10
+ <a>
11
+ <i class='fa fa-user'></i>
12
+ <%= try_spree_current_user.email %>
13
+ </a>
7
14
  <% end %>
8
15
  </li>
9
16
  <li data-hook="user-logout-link">
10
17
  <%= link_to spree.admin_logout_path do %>
11
18
  <i class='fa fa-sign-out'></i>
12
- <%= Spree.t(:logout) %>
19
+ <%= I18n.t('spree.logout') %>
13
20
  <% end %>
14
21
  </li>
15
22
 
@@ -17,7 +24,7 @@
17
24
  <li data-hook="store-frontend-link">
18
25
  <%= link_to spree.root_path, target: '_blank' do %>
19
26
  <i class='fa fa-external-link'></i>
20
- <%= Spree.t(:back_to_store) %>
27
+ <%= I18n.t('spree.back_to_store') %>
21
28
  <% end %>
22
29
  </li>
23
30
  <% end %>
@@ -1,15 +1,15 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
- <h2><%= Spree.t(:change_my_password) %></h2>
2
+ <h2><%= I18n.t('spree.change_my_password') %></h2>
3
3
 
4
4
  <%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
5
5
  <p>
6
- <%= f.label :password, Spree.t(:password) %><br />
6
+ <%= f.label :password, I18n.t('spree.password') %><br />
7
7
  <%= f.password_field :password %><br />
8
8
  </p>
9
9
  <p>
10
- <%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
10
+ <%= f.label :password_confirmation, I18n.t('spree.confirm_password') %><br />
11
11
  <%= f.password_field :password_confirmation %><br />
12
12
  </p>
13
13
  <%= f.hidden_field :reset_password_token %>
14
- <%= f.submit Spree.t(:update), class: 'button primary' %>
14
+ <%= f.submit I18n.t('spree.update'), class: 'button primary' %>
15
15
  <% end %>
@@ -1,17 +1,17 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
 
3
3
  <div id="forgot-password">
4
- <h6><%= Spree.t(:forgot_password) %></h6>
4
+ <h6><%= I18n.t('spree.forgot_password') %></h6>
5
5
 
6
- <p><%= Spree.t(:instructions_to_reset_password) %></p>
6
+ <p><%= I18n.t('spree.instructions_to_reset_password') %></p>
7
7
 
8
8
  <%= form_for Spree::User.new, as: :spree_user, url: spree.admin_reset_password_path do |f| %>
9
9
  <p>
10
- <%= f.label :email, Spree.t(:email) %><br />
10
+ <%= f.label :email, I18n.t('spree.email') %><br />
11
11
  <%= f.email_field :email %>
12
12
  </p>
13
13
  <p>
14
- <%= f.submit Spree.t(:reset_password), class: 'button primary' %>
14
+ <%= f.submit I18n.t('spree.reset_password'), class: 'button primary' %>
15
15
  </p>
16
16
  <% end %>
17
17
  </div>
@@ -1,4 +1,4 @@
1
1
  <div style="height:50px; padding-top:20px;">
2
- <strong><%= Spree.t(:authorization_failure) %></strong>
2
+ <strong><%= I18n.t('spree.authorization_failure') %></strong>
3
3
  </div>
4
4
  <!-- Add your own custom access denied message here if you like -->
@@ -4,28 +4,28 @@
4
4
 
5
5
  <% @body_id = 'login' %>
6
6
  <div id="existing-customer">
7
- <h6><%= Spree.t(:admin_login) %></h6>
7
+ <h6><%= I18n.t('spree.admin_login') %></h6>
8
8
  <div data-hook="login">
9
9
  <%= form_for Spree::User.new, as: :spree_user, url: spree.admin_create_new_session_path do |f| %>
10
10
  <div id="password-credentials">
11
11
  <p>
12
- <%= f.label :email, Spree.t(:email) %><br />
12
+ <%= f.label :email, I18n.t('spree.email') %><br />
13
13
  <%= f.email_field :email, class: 'title', tabindex: 1 %>
14
14
  </p>
15
15
  <p>
16
- <%= f.label :password, Spree.t(:password) %><br />
16
+ <%= f.label :password, I18n.t('spree.password') %><br />
17
17
  <%= f.password_field :password, class: 'title', tabindex: 2 %>
18
18
  </p>
19
19
  </div>
20
20
  <p>
21
21
  <%= f.check_box :remember_me, tabindex: 3 %>
22
- <%= f.label :remember_me, Spree.t(:remember_me) %>
22
+ <%= f.label :remember_me, I18n.t('spree.remember_me') %>
23
23
  </p>
24
24
 
25
- <p><%= f.submit Spree.t(:login), class: 'button primary', tabindex: 4 %></p>
25
+ <p><%= f.submit I18n.t('spree.login'), class: 'button primary', tabindex: 4 %></p>
26
26
  <% end %>
27
- <%= Spree.t(:or) %>
28
- <%= link_to Spree.t(:forgot_password), spree.admin_recover_password_path %>
27
+ <%= I18n.t('spree.or') %>
28
+ <%= link_to I18n.t('spree.forgot_password'), spree.admin_recover_password_path %>
29
29
  </div>
30
30
  </div>
31
31
  <div data-hook="login_extras"></div>
@@ -1,12 +1,12 @@
1
1
  <% if spree_current_user %>
2
2
  <ul id="login-nav" class="inline-menu">
3
- <li data-hook="user-logged-in-as"><%= Spree.t(:logged_in_as) %>: <%= spree_current_user.email %></li>
4
- <li data-hook="user-account-link" class='fa fa-user'><%= link_to Spree.t(:account), spree.edit_admin_user_path(spree_current_user) %></li>
5
- <li data-hook="user-logout-link" class='fa fa-sign-out'><%= link_to Spree.t(:logout), spree.admin_logout_path %></li>
3
+ <li data-hook="user-logged-in-as"><%= I18n.t('spree.logged_in_as') %>: <%= spree_current_user.email %></li>
4
+ <li data-hook="user-account-link" class='fa fa-user'><%= link_to I18n.t('spree.account'), spree.edit_admin_user_path(spree_current_user) %></li>
5
+ <li data-hook="user-logout-link" class='fa fa-sign-out'><%= link_to I18n.t('spree.logout'), spree.admin_logout_path %></li>
6
6
 
7
7
  <% if spree.respond_to? :root_path %>
8
8
  <li data-hook="store-frontend-link" class='fa fa-external-link'>
9
- <%= link_to Spree.t(:back_to_store), spree.root_path, target: '_blank' %>
9
+ <%= link_to I18n.t('spree.back_to_store'), spree.root_path, target: '_blank' %>
10
10
  </li>
11
11
  <% end %>
12
12
  </ul>
@@ -1,21 +1,21 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
2
- <h1><%= Spree.t(:registration) %></h1>
2
+ <h1><%= I18n.t('spree.registration') %></h1>
3
3
  <div id="registration" data-hook>
4
4
  <div id="account" class="columns alpha eight">
5
5
  <%= render template: 'spree/user_sessions/new' %>
6
6
  </div>
7
7
  <% if Spree::Config[:allow_guest_checkout] %>
8
8
  <div id="guest_checkout" data-hook class="columns omega eight">
9
- <h6><%= Spree.t(:guest_user_account) %></h6>
9
+ <h6><%= I18n.t('spree.guest_user_account') %></h6>
10
10
  <% if flash[:registration_error] %>
11
11
  <div class='flash error'><%= flash[:registration_error] %></div>
12
12
  <% end %>
13
13
  <%= form_for @order, url: update_checkout_registration_path, method: :put, html: { id: 'checkout_form_registration' } do |f| %>
14
14
  <p>
15
- <%= f.label :email, Spree.t(:email) %><br />
15
+ <%= f.label :email, I18n.t('spree.email') %><br />
16
16
  <%= f.email_field :email, class: 'title' %>
17
17
  </p>
18
- <p><%= f.submit Spree.t(:continue), class: 'button primary' %></p>
18
+ <p><%= f.submit I18n.t('spree.continue'), class: 'button primary' %></p>
19
19
  <% end %>
20
20
  </div>
21
21
  <% end %>
@@ -1,18 +1,18 @@
1
1
  <%= form_for Spree::User.new, as: :spree_user, url: spree.create_new_session_path do |f| %>
2
2
  <div id="password-credentials">
3
3
  <p>
4
- <%= f.label :email, Spree.t(:email) %><br />
4
+ <%= f.label :email, I18n.t('spree.email') %><br />
5
5
  <%= f.email_field :email, class: 'title', tabindex: 1, autofocus: true %>
6
6
  </p>
7
7
  <p>
8
- <%= f.label :password, Spree.t(:password) %><br />
8
+ <%= f.label :password, I18n.t('spree.password') %><br />
9
9
  <%= f.password_field :password, class: 'title', tabindex: 2 %>
10
10
  </p>
11
11
  </div>
12
12
  <p>
13
13
  <%= f.check_box :remember_me, tabindex: 3 %>
14
- <%= f.label :remember_me, Spree.t(:remember_me) %>
14
+ <%= f.label :remember_me, I18n.t('spree.remember_me') %>
15
15
  </p>
16
16
 
17
- <p><%= f.submit Spree.t(:login), class: 'button primary', tabindex: 4 %></p>
17
+ <p><%= f.submit I18n.t('spree.login'), class: 'button primary', tabindex: 4 %></p>
18
18
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <% if spree_current_user %>
2
- <li><%= link_to Spree.t(:my_account), spree.account_path %></li>
3
- <li><%= link_to Spree.t(:logout), spree.logout_path %></li>
2
+ <li><%= link_to I18n.t('spree.my_account'), spree.account_path %></li>
3
+ <li><%= link_to I18n.t('spree.logout'), spree.logout_path %></li>
4
4
  <% else %>
5
- <li id="link-to-login"><%= link_to Spree.t(:login), spree.login_path %></li>
5
+ <li id="link-to-login"><%= link_to I18n.t('spree.login'), spree.login_path %></li>
6
6
  <% end %>
@@ -1,15 +1,15 @@
1
1
  <p>
2
- <%= f.label :email, Spree.t(:email) %><br />
2
+ <%= f.label :email, I18n.t('spree.email') %><br />
3
3
  <%= f.email_field :email, class: 'title' %>
4
4
  </p>
5
5
  <div id="password-credentials">
6
6
  <p>
7
- <%= f.label :password, Spree.t(:password) %><br />
7
+ <%= f.label :password, I18n.t('spree.password') %><br />
8
8
  <%= f.password_field :password, class: 'title' %>
9
9
  </p>
10
10
 
11
11
  <p>
12
- <%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
12
+ <%= f.label :password_confirmation, I18n.t('spree.confirm_password') %><br />
13
13
  <%= f.password_field :password_confirmation, class: 'title' %>
14
14
  </p>
15
15
  </div>
@@ -1,17 +1,17 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
  <div id="change-password">
3
- <h6><%= Spree.t(:change_my_password) %></h6>
3
+ <h6><%= I18n.t('spree.change_my_password') %></h6>
4
4
 
5
5
  <%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
6
6
  <p>
7
- <%= f.label :password, Spree.t(:password) %><br />
7
+ <%= f.label :password, I18n.t('spree.password') %><br />
8
8
  <%= f.password_field :password %><br />
9
9
  </p>
10
10
  <p>
11
- <%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
11
+ <%= f.label :password_confirmation, I18n.t('spree.confirm_password') %><br />
12
12
  <%= f.password_field :password_confirmation %><br />
13
13
  </p>
14
14
  <%= f.hidden_field :reset_password_token %>
15
- <%= f.submit Spree.t(:update), class: 'button primary' %>
15
+ <%= f.submit I18n.t('spree.update'), class: 'button primary' %>
16
16
  <% end %>
17
17
  </div>
@@ -1,17 +1,17 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
 
3
3
  <div id="forgot-password">
4
- <h6><%= Spree.t(:forgot_password) %></h6>
4
+ <h6><%= I18n.t('spree.forgot_password') %></h6>
5
5
 
6
- <p><%= Spree.t(:instructions_to_reset_password) %></p>
6
+ <p><%= I18n.t('spree.instructions_to_reset_password') %></p>
7
7
 
8
8
  <%= form_for Spree::User.new, as: :spree_user, url: spree.reset_password_path do |f| %>
9
9
  <p>
10
- <%= f.label :email, Spree.t(:email) %><br />
10
+ <%= f.label :email, I18n.t('spree.email') %><br />
11
11
  <%= f.email_field :email %>
12
12
  </p>
13
13
  <p>
14
- <%= f.submit Spree.t(:reset_password), class: 'button primary' %>
14
+ <%= f.submit I18n.t('spree.reset_password'), class: 'button primary' %>
15
15
  </p>
16
16
  <% end %>
17
17
  </div>
@@ -3,16 +3,16 @@
3
3
  <%= render 'spree/shared/error_messages', target: resource %>
4
4
 
5
5
  <div id="new-customer">
6
- <h6><%= Spree.t(:new_customer) %></h6>
6
+ <h6><%= I18n.t('spree.new_customer') %></h6>
7
7
 
8
8
  <div data-hook="signup">
9
9
  <%= form_for resource, as: :spree_user, url: spree.registration_path(resource) do |f| %>
10
10
  <div data-hook="signup_inside_form">
11
11
  <%= render partial: 'spree/shared/user_form', locals: { f: f } %>
12
- <p><%= f.submit Spree.t(:create), class: 'button primary' %></p>
12
+ <p><%= f.submit I18n.t('spree.create'), class: 'button primary' %></p>
13
13
  </div>
14
14
  <% end %>
15
- <%= Spree.t(:or) %>&nbsp;<%= link_to Spree.t(:login_as_existing), spree.login_path %>
15
+ <%= I18n.t('spree.or') %>&nbsp;<%= link_to I18n.t('spree.login_as_existing'), spree.login_path %>
16
16
 
17
17
  </div>
18
18
 
@@ -1,4 +1,4 @@
1
1
  <div style="height:50px; padding-top:20px;">
2
- <strong><%= Spree.t(:authorization_failure) %></strong>
2
+ <strong><%= I18n.t('spree.authorization_failure') %></strong>
3
3
  </div>
4
4
  <!-- Add your own custom access denied message here if you like -->
@@ -4,10 +4,10 @@
4
4
 
5
5
  <% @body_id = 'login' %>
6
6
  <div id="existing-customer">
7
- <h6><%= Spree.t(:login_as_existing) %></h6>
7
+ <h6><%= I18n.t('spree.login_as_existing') %></h6>
8
8
  <div data-hook="login">
9
9
  <%= render partial: 'spree/shared/login' %>
10
- <%= Spree.t(:or) %>&nbsp;<%= link_to Spree.t(:create_a_new_account), spree.signup_path %> | <%= link_to Spree.t(:forgot_password), spree.recover_password_path %>
10
+ <%= I18n.t('spree.or') %>&nbsp;<%= link_to I18n.t('spree.create_a_new_account'), spree.signup_path %> | <%= link_to I18n.t('spree.forgot_password'), spree.recover_password_path %>
11
11
  </div>
12
12
  </div>
13
13
  <div data-hook="login_extras"></div>
@@ -1,13 +1,13 @@
1
1
  <%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
2
2
 
3
3
  <div id="edit-account">
4
- <h1><%= Spree.t(:editing_user) %></h1>
4
+ <h1><%= I18n.t('spree.editing_user') %></h1>
5
5
 
6
6
  <div data-hook="account_edit">
7
7
  <%= form_for Spree::User.new, as: @user, url: spree.user_path(@user), method: :put do |f| %>
8
8
  <%= render partial: 'spree/shared/user_form', locals: { f: f } %>
9
9
  <p>
10
- <%= f.submit Spree.t(:update), class: 'button primary' %>
10
+ <%= f.submit I18n.t('spree.update'), class: 'button primary' %>
11
11
  </p>
12
12
  <% end %>
13
13
  </div>
@@ -2,24 +2,24 @@
2
2
 
3
3
  <div data-hook="account_summary" class="account-summary">
4
4
  <dl id="user-info">
5
- <dt><%= Spree.t(:email) %></dt>
6
- <dd><%= @user.email %> (<%= link_to Spree.t(:edit), spree.edit_account_path %>)</dd>
5
+ <dt><%= I18n.t('spree.email') %></dt>
6
+ <dd><%= @user.email %> (<%= link_to I18n.t('spree.edit'), spree.edit_account_path %>)</dd>
7
7
  </dl>
8
8
  </div>
9
9
 
10
10
  <div data-hook="account_my_orders" class="account-my-orders">
11
11
 
12
- <h3><%= Spree.t(:my_orders) %></h3>
12
+ <h3><%= I18n.t('spree.my_orders') %></h3>
13
13
  <% if @orders.present? %>
14
14
  <table class="order-summary">
15
15
  <thead>
16
16
  <tr>
17
17
  <th class="order-number"><%= I18n.t(:number, scope: 'activerecord.attributes.spree/order') %></th>
18
- <th class="order-date"><%= Spree.t(:date) %></th>
19
- <th class="order-status"><%= Spree.t(:status) %></th>
20
- <th class="order-payment-state"><%= Spree.t(:payment_state) %></th>
21
- <th class="order-shipment-state"><%= Spree.t(:shipment_state) %></th>
22
- <th class="order-total"><%= Spree.t(:total) %></th>
18
+ <th class="order-date"><%= I18n.t('spree.date') %></th>
19
+ <th class="order-status"><%= I18n.t('spree.status') %></th>
20
+ <th class="order-payment-state"><%= I18n.t('spree.payment_state') %></th>
21
+ <th class="order-shipment-state"><%= I18n.t('spree.shipment_state') %></th>
22
+ <th class="order-total"><%= I18n.t('spree.total') %></th>
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody>
@@ -27,16 +27,16 @@
27
27
  <tr class="<%= cycle('even', 'odd') %>">
28
28
  <td class="order-number"><%= link_to order.number, order_url(order) %></td>
29
29
  <td class="order-date"><%= l order.completed_at.to_date %></td>
30
- <td class="order-status"><%= Spree.t("order_state.#{order.state}").titleize %></td>
31
- <td class="order-payment-state"><%= Spree.t("payment_states.#{order.payment_state}").titleize if order.payment_state %></td>
32
- <td class="order-shipment-state"><%= Spree.t("shipment_states.#{order.shipment_state}").titleize if order.shipment_state %></td>
30
+ <td class="order-status"><%= I18n.t("spree.order_state.#{order.state}").titleize %></td>
31
+ <td class="order-payment-state"><%= I18n.t("spree.payment_states.#{order.payment_state}").titleize if order.payment_state %></td>
32
+ <td class="order-shipment-state"><%= I18n.t("spree.shipment_states.#{order.shipment_state}").titleize if order.shipment_state %></td>
33
33
  <td class="order-total"><%= order.display_total %></td>
34
34
  </tr>
35
35
  <% end %>
36
36
  </tbody>
37
37
  </table>
38
38
  <% else %>
39
- <p><%= Spree.t(:you_have_no_orders_yet) %></p>
39
+ <p><%= I18n.t('spree.you_have_no_orders_yet') %></p>
40
40
  <% end %>
41
41
  <br />
42
42
 
@@ -1,9 +1,12 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ $:.unshift File.expand_path('lib', __dir__)
4
+ require 'spree/auth/version'
5
+
3
6
  Gem::Specification.new do |s|
4
7
  s.platform = Gem::Platform::RUBY
5
8
  s.name = "solidus_auth_devise"
6
- s.version = "2.1.0"
9
+ s.version = Spree::Auth::VERSION
7
10
  s.summary = "Provides authentication and authorization services for use with Solidus by using Devise and CanCan."
8
11
  s.description = s.summary
9
12
 
@@ -29,8 +32,8 @@ Gem::Specification.new do |s|
29
32
  s.add_development_dependency "capybara-screenshot"
30
33
  s.add_development_dependency "coffee-rails"
31
34
  s.add_development_dependency "database_cleaner", "~> 1.6"
32
- s.add_development_dependency "factory_bot", "~> 4.4"
33
35
  s.add_development_dependency "ffaker"
36
+ s.add_development_dependency "gem-release", "~> 2.0"
34
37
  s.add_development_dependency "poltergeist", "~> 1.5"
35
38
  s.add_development_dependency "rspec-rails", "~> 3.3"
36
39
  s.add_development_dependency "sass-rails"
@@ -38,5 +41,5 @@ Gem::Specification.new do |s|
38
41
  s.add_development_dependency "simplecov", "~> 0.14"
39
42
  s.add_development_dependency "solidus_backend", solidus_version
40
43
  s.add_development_dependency "solidus_frontend", solidus_version
41
- s.add_development_dependency "sqlite3"
44
+ s.add_development_dependency "sqlite3", "~> 1.3.6"
42
45
  end
@@ -0,0 +1,12 @@
1
+ RSpec.describe Spree::Admin::UserPasswordsController, type: :controller do
2
+ before { @request.env['devise.mapping'] = Devise.mappings[:spree_user] }
3
+
4
+ describe '#create' do
5
+ it 'responds with success' do
6
+ post :create, params: { spree_user: { email: 'admin@example.com' } }
7
+
8
+ expect(assigns[:spree_user].email).to eq('admin@example.com')
9
+ expect(response.code).to eq('200')
10
+ end
11
+ end
12
+ end
@@ -94,7 +94,7 @@ RSpec.describe Spree::CheckoutController, type: :controller do
94
94
  request.cookie_jar.signed[:guest_token] = 'ABC'
95
95
  post :update, params: { state: 'confirm' }
96
96
  expect(response).to redirect_to spree.token_order_path(order, 'ABC')
97
- expect(flash.notice).to eq Spree.t(:order_processed_successfully)
97
+ expect(flash.notice).to eq I18n.t('spree.order_processed_successfully')
98
98
  end
99
99
  end
100
100
 
@@ -4,11 +4,8 @@ RSpec.describe Spree::UsersController, type: :controller do
4
4
  let(:user) { create(:user) }
5
5
  let(:role) { create(:role) }
6
6
 
7
- before { allow(controller).to receive(:spree_current_user) { user } }
8
-
9
7
  context '#load_object' do
10
8
  it 'redirects to signup path if user is not found' do
11
- allow(controller).to receive(:spree_current_user) { nil }
12
9
  put :update, params: { user: { email: 'foobar@example.com' } }
13
10
  expect(response).to redirect_to spree.login_path
14
11
  end
@@ -22,11 +19,32 @@ RSpec.describe Spree::UsersController, type: :controller do
22
19
  end
23
20
 
24
21
  context '#update' do
22
+ before { sign_in(user) }
23
+
25
24
  context 'when updating own account' do
26
- it 'performs update' do
27
- put :update, params: { user: { email: 'mynew@email-address.com' } }
28
- expect(assigns[:user].email).to eq 'mynew@email-address.com'
29
- expect(response).to redirect_to spree.account_url(only_path: true)
25
+
26
+ context 'when user updated successfuly' do
27
+ before { put :update, params: { user: { email: 'mynew@email-address.com' } } }
28
+
29
+ it 'saves user' do
30
+ expect(assigns[:user].email).to eq 'mynew@email-address.com'
31
+ end
32
+
33
+ it 'updates spree_current_user' do
34
+ expect(subject.spree_current_user.email).to eq 'mynew@email-address.com'
35
+ end
36
+
37
+ it 'redirects to account url' do
38
+ expect(response).to redirect_to spree.account_url(only_path: true)
39
+ end
40
+ end
41
+
42
+ context 'when user not valid' do
43
+ before { put :update, params: { user: { email: '' } } }
44
+
45
+ it 'does not affect spree_current_user' do
46
+ expect(subject.spree_current_user.email).to eq user.email
47
+ end
30
48
  end
31
49
  end
32
50
 
@@ -2,6 +2,6 @@ FactoryBot.define do
2
2
  factory :confirmed_user, parent: :user do
3
3
  confirmed_at { Time.now }
4
4
  confirmation_sent_at { Time.now }
5
- confirmation_token "12345"
5
+ confirmation_token { "12345" }
6
6
  end
7
7
  end
@@ -2,23 +2,18 @@ require 'spec_helper'
2
2
 
3
3
  feature 'Confirmation' do
4
4
  before do
5
- skip "this introduces a run order dependency"
5
+ set_confirmable_option(false)
6
+ allow(Spree::UserMailer).to receive(:confirmation_instructions)
7
+ .and_return(double(deliver: true))
6
8
  end
7
9
 
8
- before do
9
- set_confirmable_option(true)
10
- Spree::UserMailer.stub(:confirmation_instructions).and_return(double(deliver: true))
11
- end
12
-
13
- #after(:each) { set_confirmable_option(false) }
14
-
15
10
  let!(:store) { create(:store) }
16
11
 
17
12
  background do
18
13
  ActionMailer::Base.default_url_options[:host] = 'http://example.com'
19
14
  end
20
15
 
21
- scenario 'create a new user' do
16
+ scenario 'create a new user', :js do
22
17
  visit spree.signup_path
23
18
 
24
19
  fill_in 'Email', with: 'email@person.com'
@@ -78,11 +78,9 @@ RSpec.describe Spree::User, type: :model do
78
78
  end
79
79
 
80
80
  describe "confirmable" do
81
- before { skip "this introduces a run order dependency" }
82
-
83
81
  it "is confirmable if the confirmable option is enabled" do
84
82
  set_confirmable_option(true)
85
- Spree::UserMailer.stub(:confirmation_instructions).and_return(double(deliver: true))
83
+ allow(Spree::UserMailer).to receive(:confirmation_instructions).and_return(double(deliver: true))
86
84
  expect(Spree::User.devise_modules).to include(:confirmable)
87
85
  set_confirmable_option(false)
88
86
  end
@@ -1,10 +1,12 @@
1
1
  module ConfirmHelpers
2
2
  def set_confirmable_option(value)
3
- # FIXME: This is terrible terribleness and causes anything loaded
4
- # on the user at initialization to be lost.
5
- Spree::Auth::Config[:confirmable] = value
6
- Spree.send(:remove_const, 'User')
7
- load File.expand_path("../../../app/models/spree/user.rb", __FILE__)
3
+ if value
4
+ Spree::User.devise_modules.push(:confirmable)
5
+ Spree::Auth::Config.set(confirmable: true)
6
+ else
7
+ Spree::User.devise_modules.delete(:confirmable)
8
+ Spree::Auth::Config.set(confirmable: false)
9
+ end
8
10
  end
9
11
  end
10
12
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_auth_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.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: 2018-01-22 00:00:00.000000000 Z
11
+ date: 2019-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -129,33 +129,33 @@ dependencies:
129
129
  - !ruby/object:Gem::Version
130
130
  version: '1.6'
131
131
  - !ruby/object:Gem::Dependency
132
- name: factory_bot
132
+ name: ffaker
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: '4.4'
137
+ version: '0'
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - "~>"
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: '4.4'
144
+ version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
- name: ffaker
146
+ name: gem-release
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - ">="
149
+ - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '0'
151
+ version: '2.0'
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ">="
156
+ - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0'
158
+ version: '2.0'
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: poltergeist
161
161
  requirement: !ruby/object:Gem::Requirement
@@ -270,16 +270,16 @@ dependencies:
270
270
  name: sqlite3
271
271
  requirement: !ruby/object:Gem::Requirement
272
272
  requirements:
273
- - - ">="
273
+ - - "~>"
274
274
  - !ruby/object:Gem::Version
275
- version: '0'
275
+ version: 1.3.6
276
276
  type: :development
277
277
  prerelease: false
278
278
  version_requirements: !ruby/object:Gem::Requirement
279
279
  requirements:
280
- - - ">="
280
+ - - "~>"
281
281
  - !ruby/object:Gem::Version
282
- version: '0'
282
+ version: 1.3.6
283
283
  description: Provides authentication and authorization services for use with Solidus
284
284
  by using Devise and CanCan.
285
285
  email: contact@solidus.io
@@ -287,6 +287,8 @@ executables: []
287
287
  extensions: []
288
288
  extra_rdoc_files: []
289
289
  files:
290
+ - ".circleci/config.yml"
291
+ - ".gem_release.yml"
290
292
  - ".gitignore"
291
293
  - ".rspec"
292
294
  - ".travis.yml"
@@ -301,7 +303,6 @@ files:
301
303
  - app/overrides/auth_admin_login_navigation_bar.rb
302
304
  - app/overrides/auth_shared_login_bar.rb
303
305
  - bin/rails
304
- - circle.yml
305
306
  - config/initializers/devise.rb
306
307
  - config/initializers/warden.rb
307
308
  - config/locales/de.yml
@@ -322,13 +323,13 @@ files:
322
323
  - db/migrate/20120605211305_make_users_email_index_unique.rb
323
324
  - db/migrate/20140904000425_add_deleted_at_to_users.rb
324
325
  - db/migrate/20141002154641_add_confirmable_to_users.rb
326
+ - db/migrate/20190125170630_add_reset_password_token_index_to_spree_users.rb
325
327
  - db/seeds.rb
326
328
  - lib/assets/javascripts/spree/backend/solidus_auth.js
327
329
  - lib/assets/javascripts/spree/frontend/solidus_auth.js
328
330
  - lib/assets/stylesheets/spree/backend/solidus_auth.css
329
331
  - lib/assets/stylesheets/spree/frontend/solidus_auth.css
330
332
  - lib/controllers/backend/spree/admin/admin_controller_decorator.rb
331
- - lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb
332
333
  - lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb
333
334
  - lib/controllers/backend/spree/admin/user_passwords_controller.rb
334
335
  - lib/controllers/backend/spree/admin/user_sessions_controller.rb
@@ -344,6 +345,7 @@ files:
344
345
  - lib/solidus_auth_devise.rb
345
346
  - lib/spree/auth/devise.rb
346
347
  - lib/spree/auth/engine.rb
348
+ - lib/spree/auth/version.rb
347
349
  - lib/spree/authentication_helpers.rb
348
350
  - lib/tasks/auth.rake
349
351
  - lib/views/backend/spree/admin/shared/_navigation_footer.html.erb
@@ -368,6 +370,7 @@ files:
368
370
  - lib/views/frontend/spree/users/edit.html.erb
369
371
  - lib/views/frontend/spree/users/show.html.erb
370
372
  - solidus_auth_devise.gemspec
373
+ - spec/controllers/spree/admin/user_passwords_controller_spec.rb
371
374
  - spec/controllers/spree/checkout_controller_spec.rb
372
375
  - spec/controllers/spree/products_controller_spec.rb
373
376
  - spec/controllers/spree/user_passwords_controller_spec.rb
@@ -427,6 +430,7 @@ specification_version: 4
427
430
  summary: Provides authentication and authorization services for use with Solidus by
428
431
  using Devise and CanCan.
429
432
  test_files:
433
+ - spec/controllers/spree/admin/user_passwords_controller_spec.rb
430
434
  - spec/controllers/spree/checkout_controller_spec.rb
431
435
  - spec/controllers/spree/products_controller_spec.rb
432
436
  - spec/controllers/spree/user_passwords_controller_spec.rb
data/circle.yml DELETED
@@ -1,6 +0,0 @@
1
- machine:
2
- ruby:
3
- version: 2.1.5
4
- test:
5
- pre:
6
- - bundle exec rake test_app
@@ -1,20 +0,0 @@
1
- Spree::Admin::OrdersController.class_eval do
2
- before_action :check_authorization
3
-
4
- private
5
- def load_order_action
6
- [:edit, :update, :cancel, :resume, :approve, :resend, :open_adjustments, :close_adjustments, :cart]
7
- end
8
-
9
- def check_authorization
10
- action = params[:action].to_sym
11
- if load_order_action.include?(action)
12
- load_order
13
- session[:access_token] ||= params[:token]
14
- resource = @order || Spree::Order.new
15
- authorize! action, resource, session[:access_token]
16
- else
17
- authorize! :index, Spree::Order
18
- end
19
- end
20
- end