solidus_auth_devise 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +117 -0
  3. data/README.md +18 -1
  4. data/app/mailers/spree/user_mailer.rb +6 -6
  5. data/app/models/spree/auth_configuration.rb +3 -3
  6. data/app/overrides/auth_shared_login_bar.rb +8 -6
  7. data/config/locales/zh-CN.yml +53 -0
  8. data/config/routes.rb +1 -1
  9. data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +3 -3
  10. data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +1 -1
  11. data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +4 -2
  12. data/lib/controllers/frontend/spree/user_passwords_controller.rb +3 -3
  13. data/lib/controllers/frontend/spree/user_registrations_controller.rb +1 -1
  14. data/lib/controllers/frontend/spree/user_sessions_controller.rb +4 -0
  15. data/lib/controllers/frontend/spree/users_controller.rb +5 -5
  16. data/lib/spree/auth/engine.rb +48 -45
  17. data/lib/spree/authentication_helpers.rb +16 -11
  18. data/lib/views/backend/spree/admin/shared/_navigation_footer.html.erb +2 -2
  19. data/lib/views/backend/spree/admin/user_passwords/edit.html.erb +3 -3
  20. data/lib/views/backend/spree/admin/user_passwords/new.html.erb +3 -3
  21. data/lib/views/backend/spree/admin/user_sessions/new.html.erb +5 -5
  22. data/lib/views/backend/spree/layouts/admin/_login_nav.html.erb +2 -2
  23. data/lib/views/frontend/spree/checkout/registration.html.erb +4 -4
  24. data/lib/views/frontend/spree/shared/_login.html.erb +5 -5
  25. data/lib/views/frontend/spree/shared/_user_form.html.erb +3 -3
  26. data/lib/views/frontend/spree/user_passwords/edit.html.erb +4 -4
  27. data/lib/views/frontend/spree/user_passwords/new.html.erb +3 -3
  28. data/lib/views/frontend/spree/user_registrations/new.html.erb +3 -3
  29. data/lib/views/frontend/spree/user_sessions/new.html.erb +1 -1
  30. data/lib/views/frontend/spree/users/edit.html.erb +5 -5
  31. data/lib/views/frontend/spree/users/show.html.erb +1 -1
  32. data/solidus_auth_devise.gemspec +7 -7
  33. data/spec/support/authentication_helpers.rb +2 -2
  34. metadata +17 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 069e3cf3d0b487a02fd0cd8f90229d91d21ee49c
4
- data.tar.gz: 8c03169fd0298d4ddeeb75b82974fffcd97faf5c
3
+ metadata.gz: ed48bb8fc53ea89e494278ad2016e10fcfbd30bc
4
+ data.tar.gz: b761cf86babf945a3433d9aa1cf2b9279139e52c
5
5
  SHA512:
6
- metadata.gz: b4cfbbb456e6a83241eb691cf1fa639bf30a8803ceb2a24cf2f18b7f36cd091ee20b16eb44cfe38c2e059afbe0f53ac23c0580b906f12265ca597845ce5b546a
7
- data.tar.gz: f4caa243ed037ab7dfe34e629c36b43a5e0cce9d2b6ecc82d353917bd1e5389a0b1a42fc9c92ac5a95ab22481313a206559f39d559aecde8927e9a158b4c6734
6
+ metadata.gz: 8a8ecb33d6be656864477bcc7d55b7adb1b3a8ee19b3061c49e48e618fb21b098a0ab86cfdbba117fff817c0e4b87306dbf5caa7203e2d674b74e3adcd03d862
7
+ data.tar.gz: 035211966358072827219d129f5dece6b04bd7a5d47316dd5d7bc5d40cdd700b314774a434e7f288f50bd9f42a03acbc1ded8c381f925deed2cf1b038caef878
@@ -0,0 +1,117 @@
1
+ ## Solidus Auth Devise v1.6.0 (master, unreleased)
2
+
3
+ ## Solidus Auth Devise v1.5.0 (2016-07-18)
4
+
5
+ * Add call to set_current_order on sign in. This replaces a before filter that
6
+ is being eliminated from Solidus controllers where set_current_order was
7
+ called excessively.
8
+
9
+ * Update backend views to only reference backend routes (#57)
10
+
11
+ * Devise dependency updates
12
+
13
+ The locked versions of Devise and Devise-Encryptable have been updated.
14
+ Devise, in particular, has been bumped to a new major version, which removes
15
+ support for the following:
16
+
17
+ - Rails 3.2. and 4.0
18
+ - Ruby 1.9 and 2.0
19
+
20
+ These losses are deemed acceptable, as Solidus' core itself does not
21
+ support any of these versions.
22
+
23
+ For more details on the changes, see the Devise changelog:
24
+ https://github.com/plataformatec/devise/blob/master/CHANGELOG.md
25
+
26
+ Similar changes in `devise-encryptable`, with details in the changelog:
27
+ https://github.com/plataformatec/devise-encryptable/blob/master/Changelog.md
28
+
29
+ * Addition of Chinese translations (#64)
30
+
31
+ ## Solidus Auth Devise v1.4.0 (2016-05-16)
32
+
33
+ * Update hash syntax for routes.rb
34
+ * Make route syntax consistent and modern
35
+ * Make devise_for routes conditional
36
+ * Test against solidus 1.3
37
+ * check_authorization first in CheckoutController
38
+ * Ensure current_order exists checking registration
39
+ * Add vendor to .gitignore
40
+ * Revert "ChcktController checks auth and registration first"
41
+ * ChcktController checks auth and registration first
42
+ * Remove obsolete regression test
43
+ * Remove superfluous call to associate_user
44
+ * Test and fix order association
45
+ * Re-add Solidus 1.0 compatability
46
+ * Improve readability of check_registration
47
+ * Force registration when guest checkout not allowed
48
+ * Improve check_registration spec for guest case
49
+ * Add pg and mysql2 to Gemfile
50
+ * Also test against v1.1 and v1.2
51
+ * Allow https instead of git in gemfile
52
+ * Ignore pkg directory
53
+ * Update .travis.yml
54
+ * Update README testing section
55
+ * Fix specs now that order's store is required
56
+ * Moved the encryptor setting for the User model into the devise config, allowing it to be easily overridden from the local devise config.
57
+
58
+ ## Solidus Auth Devise v1.3.0 (2016-01-12)
59
+
60
+ * Add capybara-screenshot
61
+ * Remove restriction on sass-rails and coffee-rails
62
+ * Remove the "Logged in as:" message
63
+ * Correct use of font-awesome
64
+ * Swap .inline-menu for specific hook
65
+ * Add new template override
66
+ * remove duplicate translation
67
+ * add missing translations for German locale
68
+
69
+ ## Solidus Auth Devise v1.2.3 (2015-11-30)
70
+
71
+ * Add an explicit require to deface
72
+ * Check if front/backend are available before decorating the controllers
73
+ * Rename spree@example.com to admin@example.com
74
+ * Skip the confirmation spec
75
+ * Permit editing email
76
+
77
+ ## Solidus Auth Devise v1.2.2 (2015-10-01)
78
+
79
+ * Automatically regenerate a user's spree_api_key upon password change.
80
+ * Inherit from Spree::Base
81
+ * Explicitely add deface to gemfile
82
+ * Remove some redundant includes
83
+ * Remove unneeded monkey patching
84
+ * Remove brittle spec
85
+ * Pass store to from_address helper
86
+ * Fix broken specs
87
+
88
+ ## Solidus Auth Devise v1.2.0 (2015-07-22)
89
+
90
+ * Use new extension point for access denied.
91
+ * Explicitly include UserMethods on Spree::User
92
+ * Bump rspec to 3.3 and remove minor patch restriction.
93
+ * We no longer redirect to admin/orders by default.
94
+ * Skip adding devise.rb if it already exists.
95
+ * Fix checkout spec
96
+ * Bump to RSpec 3.2
97
+ * Use non-deprecated `deliver_now` in mailer spec.
98
+ * Fix generator name.
99
+
100
+ ## Solidus Auth Devise v1.1.0 (2015-06-03)
101
+
102
+ * Updates for devise 3.5.1
103
+ * Bump devise to ~> 3.5.1
104
+ * Avoid stubbing to fix checkout spec
105
+ * Minor update to README.md
106
+ * Remove Spree::Core::ControllerHelpers::SSL
107
+ * Add circle.yml
108
+ * Use git+ssh for solidus gem
109
+ * Remove dead code.
110
+ * Refactor UserSessionsController and specs
111
+ * Remove @user from UserRegistrationsController
112
+ * Add specs for UserRegistrationsController
113
+ * Remove empty overrides in registrations controller
114
+
115
+ ## Solidus Auth Devise v1.0.0 (2015-05-26)
116
+
117
+ * Initial Release
data/README.md CHANGED
@@ -7,22 +7,37 @@ Installation
7
7
  ------------
8
8
 
9
9
  Just add this line to your `Gemfile`:
10
+
10
11
  ```ruby
11
12
  gem "solidus_auth_devise"
12
13
  ```
13
14
 
14
- Then run `bundle install`.
15
+ Then, run `bundle install`.
16
+
17
+ After that's done, you can install and run the necessary migrations, then seed the database:
18
+
19
+ ```shell
20
+ bundle exec rake solidus_auth:install:migration
21
+ bundle exec rake db:migrate
22
+ bundle exec rake db:seed
23
+ ```
24
+
25
+ ### Default Username/Password
26
+
27
+ As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are `admin@example.com` and `test123`, respectively.
15
28
 
16
29
  ### Confirmable
17
30
 
18
31
  To enable Devise's Confirmable module, which will send the user an email with a link to confirm their account, you must do the following:
19
32
 
20
33
  * Add this line to an initializer in your Rails project (typically `config/initializers/spree.rb`):
34
+
21
35
  ```ruby
22
36
  Spree::Auth::Config[:confirmable] = true
23
37
  ```
24
38
 
25
39
  * Add a Devise initializer to your Rails project (typically `config/initializers/devise.rb`):
40
+
26
41
  ```ruby
27
42
  Devise.setup do |config|
28
43
  # Required so users don't lose their carts when they need to confirm.
@@ -57,11 +72,13 @@ end
57
72
  ```
58
73
 
59
74
  Then register your class in your spree initializer: config/initializers/spree.rb
75
+
60
76
  ```ruby
61
77
  Spree::Ability.register_ability(SuperAbilities)
62
78
  ```
63
79
 
64
80
  Inside of your host application you can then use CanCan like you normally would.
81
+
65
82
  ```erb
66
83
  <% if can? :stop Bullet %>
67
84
  ...
@@ -1,15 +1,15 @@
1
1
  module Spree
2
2
  class UserMailer < BaseMailer
3
3
  def reset_password_instructions(user, token, *args)
4
- @edit_password_reset_url = spree.edit_spree_user_password_url(:reset_password_token => token, :host => Spree::Store.current.url)
5
- @store = Spree::Store.current
6
- mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, :scope => [:devise, :mailer, :reset_password_instructions])}"
4
+ @store = Spree::Store.default
5
+ @edit_password_reset_url = spree.edit_spree_user_password_url(reset_password_token: token, host: @store.url)
6
+ mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, scope: [:devise, :mailer, :reset_password_instructions])}"
7
7
  end
8
8
 
9
9
  def confirmation_instructions(user, token, opts={})
10
- @confirmation_url = spree.spree_user_confirmation_url(:confirmation_token => token, :host => Spree::Store.current.url)
11
- @store = Spree::Store.current
12
- mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, :scope => [:devise, :mailer, :confirmation_instructions])}"
10
+ @store = Spree::Store.default
11
+ @confirmation_url = spree.spree_user_confirmation_url(confirmation_token: token, host: @store.url)
12
+ mail to: user.email, from: from_address(@store), subject: "#{@store.name} #{I18n.t(:subject, scope: [:devise, :mailer, :confirmation_instructions])}"
13
13
  end
14
14
  end
15
15
  end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  class AuthConfiguration < Preferences::Configuration
3
- preference :registration_step, :boolean, :default => true
4
- preference :signout_after_password_change, :boolean, :default => true
5
- preference :confirmable, :boolean, :default => false
3
+ preference :registration_step, :boolean, default: true
4
+ preference :signout_after_password_change, :boolean, default: true
5
+ preference :confirmable, :boolean, default: false
6
6
  end
7
7
  end
@@ -1,6 +1,8 @@
1
- Deface::Override.new(:virtual_path => "spree/shared/_nav_bar",
2
- :name => "auth_shared_login_bar",
3
- :insert_before => "li#search-bar",
4
- :partial => "spree/shared/login_bar",
5
- :disabled => false,
6
- :original => 'eb3fa668cd98b6a1c75c36420ef1b238a1fc55ac')
1
+ Deface::Override.new(
2
+ virtual_path: "spree/shared/_nav_bar",
3
+ name: "auth_shared_login_bar",
4
+ insert_before: "li#search-bar",
5
+ partial: "spree/shared/login_bar",
6
+ disabled: false,
7
+ original: 'eb3fa668cd98b6a1c75c36420ef1b238a1fc55ac'
8
+ )
@@ -0,0 +1,53 @@
1
+ ---
2
+ zh-CN:
3
+ spree:
4
+ admin_login:
5
+ devise:
6
+ confirmations:
7
+ confirmed: 账户确认成功,现已登录。
8
+ send_instructions: 稍后您将收到邮件,了解如何确认账户。
9
+ failure:
10
+ inactive: 您的账户尚未激活。
11
+ invalid: 邮箱或密码错误。
12
+ invalid_token: 验证凭证错误。
13
+ locked: 账户已锁定。
14
+ timeout: 账户闲置时间过长,请重新登录。
15
+ unauthenticated: 请注册或登录,然后继续。
16
+ unconfirmed: 请确认账户,然后继续。
17
+ mailer:
18
+ confirmation_instructions:
19
+ subject: 确认说明
20
+ reset_password_instructions:
21
+ subject: 密码重置说明
22
+ unlock_instructions:
23
+ subject: 解锁说明
24
+ oauth_callbacks:
25
+ failure: 无法从%{kind}授权,原因为 %{reason}。
26
+ success: 从%{kind}账户授权成功。
27
+ unlocks:
28
+ send_instructions: 稍后您将收到邮件,了解如何解锁账户。
29
+ unlocked: 账户解锁成功,现已登录。
30
+ user_passwords:
31
+ spree_user:
32
+ cannot_be_blank: 密码不能为空。
33
+ no_token: 若需访问本页面,请使用重置密码邮件中网址链接,并确保该网址完整。
34
+ send_instructions: 稍后您将收到邮件,了解如何重置密码。
35
+ updated: 密码修改成功,现已登录。
36
+ user_registrations:
37
+ destroyed: 账户已成功取消,再会啦,期待着您的早日回归!
38
+ inactive_signed_up: 注册成功!但暂时无法登录账户,原因为%{reason}。
39
+ signed_up: 祝贺您!注册成功。
40
+ updated: 账户更新成功。
41
+ user_sessions:
42
+ signed_in: 登录成功。
43
+ signed_out: 登出成功。
44
+ already_signed_in: 已登录。
45
+ errors:
46
+ messages:
47
+ already_confirmed: 已确认
48
+ email_is_invalid: 邮箱地址不能为空
49
+ not_found: 未找到
50
+ not_locked: 未锁定
51
+ not_saved:
52
+ one: '出现1处错误,%{resource}无法保存'
53
+ other: '出现%{count}处错误,%{resource}无法保存'
@@ -1,4 +1,4 @@
1
- Spree::Core::Engine.add_routes do
1
+ Spree::Core::Engine.routes.draw do
2
2
  if Spree::Auth::Engine.frontend_available?
3
3
  devise_for(:spree_user, {
4
4
  class_name: 'Spree::User',
@@ -10,18 +10,18 @@ class Spree::Admin::UserPasswordsController < Devise::PasswordsController
10
10
  layout 'spree/layouts/admin'
11
11
 
12
12
  # Overridden due to bug in Devise.
13
- # respond_with resource, :location => new_session_path(resource_name)
13
+ # respond_with resource, location: new_session_path(resource_name)
14
14
  # is generating bad url /session/new.user
15
15
  #
16
16
  # overridden to:
17
- # respond_with resource, :location => spree.login_path
17
+ # respond_with resource, location: spree.login_path
18
18
  #
19
19
  def create
20
20
  self.resource = resource_class.send_reset_password_instructions(params[resource_name])
21
21
 
22
22
  if resource.errors.empty?
23
23
  set_flash_message(:notice, :send_instructions) if is_navigational_format?
24
- respond_with resource, :location => spree.admin_login_path
24
+ respond_with resource, location: spree.admin_login_path
25
25
  else
26
26
  respond_with_navigational(resource) { render :new }
27
27
  end
@@ -20,7 +20,7 @@ class Spree::Admin::UserSessionsController < Devise::SessionsController
20
20
  }
21
21
  format.js {
22
22
  user = resource.record
23
- render :json => {:ship_address => user.ship_address, :bill_address => user.bill_address}.to_json
23
+ render json: {ship_address: user.ship_address, bill_address: user.bill_address}.to_json
24
24
  }
25
25
  end
26
26
  else
@@ -12,7 +12,7 @@ Spree::CheckoutController.class_eval do
12
12
  if params[:order][:email] =~ Devise.email_regexp && current_order.update_attribute(:email, params[:order][:email])
13
13
  redirect_to spree.checkout_path
14
14
  else
15
- flash[:registration_error] = t(:email_is_invalid, :scope => [:errors, :messages])
15
+ flash[:registration_error] = t(:email_is_invalid, scope: [:errors, :messages])
16
16
  @user = Spree::User.new
17
17
  render 'registration'
18
18
  end
@@ -20,7 +20,9 @@ Spree::CheckoutController.class_eval do
20
20
 
21
21
  private
22
22
  def order_params
23
- params[:order] ? params.require(:order).permit(:email) : {}
23
+ params.
24
+ fetch(:order, {}).
25
+ permit(:email)
24
26
  end
25
27
 
26
28
  def skip_state_validation?
@@ -11,18 +11,18 @@ class Spree::UserPasswordsController < Devise::PasswordsController
11
11
  include Spree::Core::ControllerHelpers::Store
12
12
 
13
13
  # Overridden due to bug in Devise.
14
- # respond_with resource, :location => new_session_path(resource_name)
14
+ # respond_with resource, location: new_session_path(resource_name)
15
15
  # is generating bad url /session/new.user
16
16
  #
17
17
  # overridden to:
18
- # respond_with resource, :location => spree.login_path
18
+ # respond_with resource, location: spree.login_path
19
19
  #
20
20
  def create
21
21
  self.resource = resource_class.send_reset_password_instructions(params[resource_name])
22
22
 
23
23
  if resource.errors.empty?
24
24
  set_flash_message(:notice, :send_instructions) if is_navigational_format?
25
- respond_with resource, :location => spree.login_path
25
+ respond_with resource, location: spree.login_path
26
26
  else
27
27
  respond_with_navigational(resource) { render :new }
28
28
  end
@@ -10,7 +10,7 @@ class Spree::UserRegistrationsController < Devise::RegistrationsController
10
10
  include Spree::Core::ControllerHelpers::Order
11
11
  include Spree::Core::ControllerHelpers::Store
12
12
 
13
- before_filter :check_permissions, :only => [:edit, :update]
13
+ before_filter :check_permissions, only: [:edit, :update]
14
14
  skip_before_filter :require_no_authentication
15
15
 
16
16
  def create
@@ -9,6 +9,10 @@ class Spree::UserSessionsController < Devise::SessionsController
9
9
  include Spree::Core::ControllerHelpers::Order
10
10
  include Spree::Core::ControllerHelpers::Store
11
11
 
12
+ # This is included in ControllerHelpers::Order. We just want to call
13
+ # it after someone has successfully logged in.
14
+ after_action :set_current_order, only: :create
15
+
12
16
  def create
13
17
  authenticate_spree_user!
14
18
 
@@ -1,7 +1,7 @@
1
1
  class Spree::UsersController < Spree::StoreController
2
- skip_before_filter :set_current_order, :only => :show
3
- prepend_before_filter :load_object, :only => [:show, :edit, :update]
4
- prepend_before_filter :authorize_actions, :only => :new
2
+ skip_before_filter :set_current_order, only: :show
3
+ prepend_before_filter :load_object, only: [:show, :edit, :update]
4
+ prepend_before_filter :authorize_actions, only: :new
5
5
 
6
6
  include Spree::Core::ControllerHelpers
7
7
 
@@ -28,9 +28,9 @@ class Spree::UsersController < Spree::StoreController
28
28
  if params[:user][:password].present?
29
29
  # this logic needed b/c devise wants to log us out after password changes
30
30
  user = Spree::User.reset_password_by_token(params[:user])
31
- sign_in(@user, :event => :authentication, :bypass => !Spree::Auth::Config[:signout_after_password_change])
31
+ sign_in(@user, event: :authentication, bypass: !Spree::Auth::Config[:signout_after_password_change])
32
32
  end
33
- redirect_to spree.account_url, :notice => Spree.t(:account_updated)
33
+ redirect_to spree.account_url, notice: Spree.t(:account_updated)
34
34
  else
35
35
  render :edit
36
36
  end
@@ -7,11 +7,11 @@ module Spree
7
7
  isolate_namespace Spree
8
8
  engine_name 'solidus_auth'
9
9
 
10
- initializer "spree.auth.environment", :before => :load_config_initializers do |app|
10
+ initializer "spree.auth.environment", before: :load_config_initializers do |app|
11
11
  Spree::Auth::Config = Spree::AuthConfiguration.new
12
12
  end
13
13
 
14
- initializer "solidus_auth_devise.set_user_class", :after => :load_config_initializers do
14
+ initializer "solidus_auth_devise.set_user_class", after: :load_config_initializers do
15
15
  Spree.user_class = "Spree::User"
16
16
  end
17
17
 
@@ -24,75 +24,78 @@ module Spree
24
24
  end
25
25
  end
26
26
 
27
- def self.activate
28
- if Spree::Auth::Engine.backend_available?
29
- Rails.application.config.assets.precompile += [
30
- 'lib/assets/javascripts/spree/backend/solidus_auth.js',
31
- 'lib/assets/javascripts/spree/backend/solidus_auth.css'
32
- ]
33
- Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/backend/*/*/*_decorator*.rb")) do |c|
34
- Rails.configuration.cache_classes ? require(c) : load(c)
35
- end
27
+ config.to_prepare do
28
+ auth = Spree::Auth::Engine
29
+
30
+ auth.prepare_backend if auth.backend_available?
31
+ auth.prepare_frontend if auth.frontend_available?
32
+
33
+ ApplicationController.send :include, Spree::AuthenticationHelpers
34
+ end
35
+
36
+ def self.prepare_backend
37
+ Rails.application.config.assets.precompile += %w[
38
+ lib/assets/javascripts/spree/backend/solidus_auth.js
39
+ lib/assets/javascripts/spree/backend/solidus_auth.css
40
+ ]
41
+
42
+ Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/backend/*/*/*_decorator*.rb")) do |c|
43
+ Rails.configuration.cache_classes ? require(c) : load(c)
36
44
  end
37
- if Spree::Auth::Engine.frontend_available?
38
- Rails.application.config.assets.precompile += [
39
- 'lib/assets/javascripts/spree/frontend/solidus_auth.js',
40
- 'lib/assets/javascripts/spree/frontend/solidus_auth.css'
41
- ]
42
- Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c|
43
- Rails.configuration.cache_classes ? require(c) : load(c)
45
+
46
+ Spree::Admin::BaseController.unauthorized_redirect = -> do
47
+ if try_spree_current_user
48
+ flash[:error] = Spree.t(:authorization_failure)
49
+ redirect_to spree.admin_unauthorized_path
50
+ else
51
+ store_location
52
+ redirect_to spree.admin_login_path
44
53
  end
45
54
  end
46
- ApplicationController.send :include, Spree::AuthenticationHelpers
55
+ end
47
56
 
48
- if self.frontend_available?
49
- Spree::BaseController.unauthorized_redirect = -> do
50
- if try_spree_current_user
51
- flash[:error] = Spree.t(:authorization_failure)
52
- redirect_to spree.unauthorized_path
53
- else
54
- store_location
55
- redirect_to spree.login_path
56
- end
57
- end
57
+ def self.prepare_frontend
58
+ Rails.application.config.assets.precompile += %w[
59
+ lib/assets/javascripts/spree/frontend/solidus_auth.js
60
+ lib/assets/javascripts/spree/frontend/solidus_auth.css
61
+ ]
62
+
63
+ Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c|
64
+ Rails.configuration.cache_classes ? require(c) : load(c)
58
65
  end
59
66
 
60
- if self.backend_available?
61
- Spree::Admin::BaseController.unauthorized_redirect = -> do
62
- if try_spree_current_user
63
- flash[:error] = Spree.t(:authorization_failure)
64
- redirect_to spree.admin_unauthorized_path
65
- else
66
- store_location
67
- redirect_to spree.admin_login_path
68
- end
67
+ Spree::BaseController.unauthorized_redirect = -> do
68
+ if try_spree_current_user
69
+ flash[:error] = Spree.t(:authorization_failure)
70
+ redirect_to spree.unauthorized_path
71
+ else
72
+ store_location
73
+ redirect_to spree.login_path
69
74
  end
70
75
  end
71
76
  end
72
77
 
73
78
  def self.backend_available?
74
- @@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Backend::Engine')
79
+ defined?(Spree::Backend::Engine) == "constant"
75
80
  end
76
81
 
77
82
  def self.dash_available?
78
- @@dash_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Dash::Engine')
83
+ defined?(Spree::Dash::Engine) == "constant"
79
84
  end
80
85
 
81
86
  def self.frontend_available?
82
- @@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Frontend::Engine')
87
+ defined?(Spree::Frontend::Engine) == "constant"
83
88
  end
84
89
 
85
- if self.backend_available?
90
+ if backend_available?
86
91
  paths["app/controllers"] << "lib/controllers/backend"
87
92
  paths["app/views"] << "lib/views/backend"
88
93
  end
89
94
 
90
- if self.frontend_available?
95
+ if frontend_available?
91
96
  paths["app/controllers"] << "lib/controllers/frontend"
92
97
  paths["app/views"] << "lib/views/frontend"
93
98
  end
94
-
95
- config.to_prepare &method(:activate).to_proc
96
99
  end
97
100
  end
98
101
  end
@@ -2,25 +2,30 @@ module Spree
2
2
  module AuthenticationHelpers
3
3
  def self.included(receiver)
4
4
  receiver.send :helper_method, :spree_current_user
5
- receiver.send :helper_method, :spree_login_path
6
- receiver.send :helper_method, :spree_signup_path
7
- receiver.send :helper_method, :spree_logout_path
5
+
6
+ if Spree::Auth::Engine.frontend_available?
7
+ receiver.send :helper_method, :spree_login_path
8
+ receiver.send :helper_method, :spree_signup_path
9
+ receiver.send :helper_method, :spree_logout_path
10
+ end
8
11
  end
9
12
 
10
13
  def spree_current_user
11
14
  current_spree_user
12
15
  end
13
16
 
14
- def spree_login_path
15
- spree.login_path
16
- end
17
+ if Spree::Auth::Engine.frontend_available?
18
+ def spree_login_path
19
+ spree.login_path
20
+ end
17
21
 
18
- def spree_signup_path
19
- spree.signup_path
20
- end
22
+ def spree_signup_path
23
+ spree.signup_path
24
+ end
21
25
 
22
- def spree_logout_path
23
- spree.logout_path
26
+ def spree_logout_path
27
+ spree.logout_path
28
+ end
24
29
  end
25
30
  end
26
31
  end
@@ -1,7 +1,7 @@
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_user_path(spree_current_user) do %>
4
+ <%= link_to spree.edit_admin_user_path(spree_current_user) do %>
5
5
  <i class='fa fa-user'></i>
6
6
  <%= spree_current_user.email %>
7
7
  <% end %>
@@ -15,7 +15,7 @@
15
15
 
16
16
  <% if spree.respond_to? :root_path %>
17
17
  <li data-hook="store-frontend-link">
18
- <%= link_to spree.root_path, :target => '_blank' do %>
18
+ <%= link_to spree.root_path, target: '_blank' do %>
19
19
  <i class='fa fa-external-link'></i>
20
20
  <%= Spree.t(:back_to_store) %>
21
21
  <% end %>
@@ -1,7 +1,7 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
  <h2><%= Spree.t(:change_my_password) %></h2>
3
3
 
4
- <%= form_for @spree_user, :as => :spree_user, :url => spree.update_password_path, :method => :put do |f| %>
4
+ <%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
5
5
  <p>
6
6
  <%= f.label :password, Spree.t(:password) %><br />
7
7
  <%= f.password_field :password %><br />
@@ -11,5 +11,5 @@
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 Spree.t(:update), class: 'button primary' %>
15
15
  <% end %>
@@ -1,17 +1,17 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
 
3
3
  <div id="forgot-password">
4
4
  <h6><%= Spree.t(:forgot_password) %></h6>
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.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 %>
12
12
  </p>
13
13
  <p>
14
- <%= f.submit Spree.t(:reset_password), :class => 'button primary' %>
14
+ <%= f.submit Spree.t(:reset_password), class: 'button primary' %>
15
15
  </p>
16
16
  <% end %>
17
17
  </div>
@@ -6,23 +6,23 @@
6
6
  <div id="existing-customer">
7
7
  <h6><%= Spree.t(:admin_login) %></h6>
8
8
  <div data-hook="login">
9
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.admin_create_new_session_path do |f| %>
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
12
  <%= f.label :email, Spree.t(:email) %><br />
13
- <%= f.email_field :email, :class => 'title', :tabindex => 1 %>
13
+ <%= f.email_field :email, class: 'title', tabindex: 1 %>
14
14
  </p>
15
15
  <p>
16
16
  <%= f.label :password, Spree.t(:password) %><br />
17
- <%= f.password_field :password, :class => 'title', :tabindex => 2 %>
17
+ <%= f.password_field :password, class: 'title', tabindex: 2 %>
18
18
  </p>
19
19
  </div>
20
20
  <p>
21
- <%= f.check_box :remember_me, :tabindex => 3 %>
21
+ <%= f.check_box :remember_me, tabindex: 3 %>
22
22
  <%= f.label :remember_me, Spree.t(:remember_me) %>
23
23
  </p>
24
24
 
25
- <p><%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 4 %></p>
25
+ <p><%= f.submit Spree.t(:login), class: 'button primary', tabindex: 4 %></p>
26
26
  <% end %>
27
27
  <%= Spree.t(:or) %>
28
28
  <%= link_to Spree.t(:forgot_password), spree.recover_password_path %>
@@ -1,12 +1,12 @@
1
1
  <% if spree_current_user %>
2
2
  <ul id="login-nav" class="inline-menu">
3
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_user_path(spree_current_user) %></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
5
  <li data-hook="user-logout-link" class='fa fa-sign-out'><%= link_to Spree.t(: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 Spree.t(:back_to_store), spree.root_path, target: '_blank' %>
10
10
  </li>
11
11
  <% end %>
12
12
  </ul>
@@ -1,4 +1,4 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
2
2
  <h1><%= Spree.t(:registration) %></h1>
3
3
  <div id="registration" data-hook>
4
4
  <div id="account" class="columns alpha eight">
@@ -10,12 +10,12 @@
10
10
  <% if flash[:registration_error] %>
11
11
  <div class='flash error'><%= flash[:registration_error] %></div>
12
12
  <% end %>
13
- <%= form_for @order, :url => update_checkout_registration_path, :method => :put, :html => { :id => 'checkout_form_registration' } do |f| %>
13
+ <%= form_for @order, url: update_checkout_registration_path, method: :put, html: { id: 'checkout_form_registration' } do |f| %>
14
14
  <p>
15
15
  <%= f.label :email, Spree.t(:email) %><br />
16
- <%= f.email_field :email, :class => 'title' %>
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 Spree.t(:continue), class: 'button primary' %></p>
19
19
  <% end %>
20
20
  </div>
21
21
  <% end %>
@@ -1,18 +1,18 @@
1
- <%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path do |f| %>
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
4
  <%= f.label :email, Spree.t(:email) %><br />
5
- <%= f.email_field :email, :class => 'title', :tabindex => 1, autofocus: true %>
5
+ <%= f.email_field :email, class: 'title', tabindex: 1, autofocus: true %>
6
6
  </p>
7
7
  <p>
8
8
  <%= f.label :password, Spree.t(:password) %><br />
9
- <%= f.password_field :password, :class => 'title', :tabindex => 2 %>
9
+ <%= f.password_field :password, class: 'title', tabindex: 2 %>
10
10
  </p>
11
11
  </div>
12
12
  <p>
13
- <%= f.check_box :remember_me, :tabindex => 3 %>
13
+ <%= f.check_box :remember_me, tabindex: 3 %>
14
14
  <%= f.label :remember_me, Spree.t(:remember_me) %>
15
15
  </p>
16
16
 
17
- <p><%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 4 %></p>
17
+ <p><%= f.submit Spree.t(:login), class: 'button primary', tabindex: 4 %></p>
18
18
  <% end %>
@@ -1,16 +1,16 @@
1
1
  <p>
2
2
  <%= f.label :email, Spree.t(:email) %><br />
3
- <%= f.email_field :email, :class => 'title' %>
3
+ <%= f.email_field :email, class: 'title' %>
4
4
  </p>
5
5
  <div id="password-credentials">
6
6
  <p>
7
7
  <%= f.label :password, Spree.t(:password) %><br />
8
- <%= f.password_field :password, :class => 'title' %>
8
+ <%= f.password_field :password, class: 'title' %>
9
9
  </p>
10
10
 
11
11
  <p>
12
12
  <%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
13
- <%= f.password_field :password_confirmation, :class => 'title' %>
13
+ <%= f.password_field :password_confirmation, class: 'title' %>
14
14
  </p>
15
15
  </div>
16
16
 
@@ -1,8 +1,8 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
  <div id="change-password">
3
3
  <h6><%= Spree.t(:change_my_password) %></h6>
4
-
5
- <%= form_for @spree_user, :as => :spree_user, :url => spree.update_password_path, :method => :put do |f| %>
4
+
5
+ <%= form_for @spree_user, as: :spree_user, url: spree.update_password_path, method: :put do |f| %>
6
6
  <p>
7
7
  <%= f.label :password, Spree.t(:password) %><br />
8
8
  <%= f.password_field :password %><br />
@@ -12,6 +12,6 @@
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 Spree.t(:update), class: 'button primary' %>
16
16
  <% end %>
17
17
  </div>
@@ -1,17 +1,17 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @spree_user } %>
2
2
 
3
3
  <div id="forgot-password">
4
4
  <h6><%= Spree.t(:forgot_password) %></h6>
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.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 %>
12
12
  </p>
13
13
  <p>
14
- <%= f.submit Spree.t(:reset_password), :class => 'button primary' %>
14
+ <%= f.submit Spree.t(:reset_password), class: 'button primary' %>
15
15
  </p>
16
16
  <% end %>
17
17
  </div>
@@ -6,10 +6,10 @@
6
6
  <h6><%= Spree.t(:new_customer) %></h6>
7
7
 
8
8
  <div data-hook="signup">
9
- <%= form_for resource, :as => :spree_user, :url => spree.registration_path(resource) do |f| %>
9
+ <%= form_for resource, as: :spree_user, url: spree.registration_path(resource) do |f| %>
10
10
  <div data-hook="signup_inside_form">
11
- <%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %>
12
- <p><%= f.submit Spree.t(:create), :class => 'button primary' %></p>
11
+ <%= render partial: 'spree/shared/user_form', locals: { f: f } %>
12
+ <p><%= f.submit Spree.t(:create), class: 'button primary' %></p>
13
13
  </div>
14
14
  <% end %>
15
15
  <%= Spree.t(:or) %>&nbsp;<%= link_to Spree.t(:login_as_existing), spree.login_path %>
@@ -6,7 +6,7 @@
6
6
  <div id="existing-customer">
7
7
  <h6><%= Spree.t(:login_as_existing) %></h6>
8
8
  <div data-hook="login">
9
- <%= render :partial => 'spree/shared/login' %>
9
+ <%= render partial: 'spree/shared/login' %>
10
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 %>
11
11
  </div>
12
12
  </div>
@@ -1,13 +1,13 @@
1
- <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %>
1
+ <%= render partial: 'spree/shared/error_messages', locals: { target: @user } %>
2
2
 
3
3
  <div id="edit-account">
4
4
  <h1><%= Spree.t(:editing_user) %></h1>
5
-
5
+
6
6
  <div data-hook="account_edit">
7
- <%= form_for Spree::User.new, :as => @user, :url => spree.user_path(@user), :method => :put do |f| %>
8
- <%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %>
7
+ <%= form_for Spree::User.new, as: @user, url: spree.user_path(@user), method: :put do |f| %>
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 Spree.t(:update), class: 'button primary' %>
11
11
  </p>
12
12
  <% end %>
13
13
  </div>
@@ -14,7 +14,7 @@
14
14
  <table class="order-summary">
15
15
  <thead>
16
16
  <tr>
17
- <th class="order-number"><%= I18n.t(:number, :scope => 'activerecord.attributes.spree/order') %></th>
17
+ <th class="order-number"><%= I18n.t(:number, scope: 'activerecord.attributes.spree/order') %></th>
18
18
  <th class="order-date"><%= Spree.t(:date) %></th>
19
19
  <th class="order-status"><%= Spree.t(:status) %></th>
20
20
  <th class="order-payment-state"><%= Spree.t(:payment_state) %></th>
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |s|
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.name = "solidus_auth_devise"
6
- s.version = "1.4.0"
6
+ s.version = "1.5.0"
7
7
  s.summary = "Provides authentication and authorization services for use with Solidus by using Devise and CanCan."
8
8
  s.description = s.summary
9
9
 
@@ -21,8 +21,8 @@ Gem::Specification.new do |s|
21
21
  solidus_version = [">= 1.0.6", "< 2"]
22
22
 
23
23
  s.add_dependency "solidus_core", solidus_version
24
- s.add_dependency "devise", '~> 3.5.1'
25
- s.add_dependency "devise-encryptable", "0.1.2"
24
+ s.add_dependency "devise", '~> 4.1'
25
+ s.add_dependency "devise-encryptable", "0.2.0"
26
26
  s.add_dependency 'deface', '~> 1.0.0'
27
27
 
28
28
  s.add_dependency "json"
@@ -31,14 +31,14 @@ Gem::Specification.new do |s|
31
31
  s.add_development_dependency "solidus_backend", solidus_version
32
32
  s.add_development_dependency "solidus_frontend", solidus_version
33
33
  s.add_development_dependency "rspec-rails", "~> 3.3"
34
- s.add_development_dependency "simplecov", "~> 0.9.0"
34
+ s.add_development_dependency "simplecov", "~> 0.11.2"
35
35
  s.add_development_dependency "sqlite3"
36
36
  s.add_development_dependency "sass-rails"
37
37
  s.add_development_dependency "coffee-rails"
38
- s.add_development_dependency "shoulda-matchers", "~> 2.6.2"
38
+ s.add_development_dependency "shoulda-matchers", "~> 3.1.1"
39
39
  s.add_development_dependency "factory_girl", "~> 4.4"
40
- s.add_development_dependency "capybara", "~> 2.4.1"
40
+ s.add_development_dependency "capybara", "~> 2.7.1"
41
41
  s.add_development_dependency "poltergeist", "~> 1.5"
42
- s.add_development_dependency "database_cleaner", "~> 1.2.0"
42
+ s.add_development_dependency "database_cleaner", "~> 1.5.3"
43
43
  s.add_development_dependency "capybara-screenshot"
44
44
  end
@@ -9,6 +9,6 @@ end
9
9
 
10
10
  RSpec.configure do |config|
11
11
  config.include AuthenticationHelpers, type: :feature
12
- config.include Devise::TestHelpers, type: :controller
13
- config.include Rack::Test::Methods, type: :feature
12
+ config.include Devise::Test::ControllerHelpers, type: :controller
13
+ config.include Rack::Test::Methods, type: :feature
14
14
  end
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: 1.4.0
4
+ version: 1.5.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: 2016-05-16 00:00:00.000000000 Z
11
+ date: 2016-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -36,28 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 3.5.1
39
+ version: '4.1'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 3.5.1
46
+ version: '4.1'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: devise-encryptable
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.2
53
+ version: 0.2.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 0.1.2
60
+ version: 0.2.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: deface
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -160,14 +160,14 @@ dependencies:
160
160
  requirements:
161
161
  - - "~>"
162
162
  - !ruby/object:Gem::Version
163
- version: 0.9.0
163
+ version: 0.11.2
164
164
  type: :development
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
168
  - - "~>"
169
169
  - !ruby/object:Gem::Version
170
- version: 0.9.0
170
+ version: 0.11.2
171
171
  - !ruby/object:Gem::Dependency
172
172
  name: sqlite3
173
173
  requirement: !ruby/object:Gem::Requirement
@@ -216,14 +216,14 @@ dependencies:
216
216
  requirements:
217
217
  - - "~>"
218
218
  - !ruby/object:Gem::Version
219
- version: 2.6.2
219
+ version: 3.1.1
220
220
  type: :development
221
221
  prerelease: false
222
222
  version_requirements: !ruby/object:Gem::Requirement
223
223
  requirements:
224
224
  - - "~>"
225
225
  - !ruby/object:Gem::Version
226
- version: 2.6.2
226
+ version: 3.1.1
227
227
  - !ruby/object:Gem::Dependency
228
228
  name: factory_girl
229
229
  requirement: !ruby/object:Gem::Requirement
@@ -244,14 +244,14 @@ dependencies:
244
244
  requirements:
245
245
  - - "~>"
246
246
  - !ruby/object:Gem::Version
247
- version: 2.4.1
247
+ version: 2.7.1
248
248
  type: :development
249
249
  prerelease: false
250
250
  version_requirements: !ruby/object:Gem::Requirement
251
251
  requirements:
252
252
  - - "~>"
253
253
  - !ruby/object:Gem::Version
254
- version: 2.4.1
254
+ version: 2.7.1
255
255
  - !ruby/object:Gem::Dependency
256
256
  name: poltergeist
257
257
  requirement: !ruby/object:Gem::Requirement
@@ -272,14 +272,14 @@ dependencies:
272
272
  requirements:
273
273
  - - "~>"
274
274
  - !ruby/object:Gem::Version
275
- version: 1.2.0
275
+ version: 1.5.3
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: 1.2.0
282
+ version: 1.5.3
283
283
  - !ruby/object:Gem::Dependency
284
284
  name: capybara-screenshot
285
285
  requirement: !ruby/object:Gem::Requirement
@@ -304,6 +304,7 @@ files:
304
304
  - ".gitignore"
305
305
  - ".rspec"
306
306
  - ".travis.yml"
307
+ - CHANGELOG.md
307
308
  - Gemfile
308
309
  - LICENSE.md
309
310
  - README.md
@@ -325,6 +326,7 @@ files:
325
326
  - config/locales/nl.yml
326
327
  - config/locales/pt-BR.yml
327
328
  - config/locales/tr.yml
329
+ - config/locales/zh-CN.yml
328
330
  - config/routes.rb
329
331
  - db/default/users.rb
330
332
  - db/migrate/20101026184949_create_users.rb
@@ -434,7 +436,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
434
436
  requirements:
435
437
  - none
436
438
  rubyforge_project:
437
- rubygems_version: 2.4.5.1
439
+ rubygems_version: 2.5.1
438
440
  signing_key:
439
441
  specification_version: 4
440
442
  summary: Provides authentication and authorization services for use with Solidus by