solidus_auth_devise_devise_token_auth 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.travis.yml +20 -0
- data/CHANGELOG.md +173 -0
- data/Gemfile +36 -0
- data/LICENSE.md +26 -0
- data/README.md +98 -0
- data/Rakefile +21 -0
- data/app/mailers/spree/user_mailer.rb +15 -0
- data/app/models/spree/auth_configuration.rb +9 -0
- data/app/models/spree/user.rb +47 -0
- data/app/overrides/auth_admin_login_navigation_bar.rb +10 -0
- data/app/overrides/auth_shared_login_bar.rb +10 -0
- data/bin/rails +7 -0
- data/circle.yml +6 -0
- data/config/initializers/devise.rb +141 -0
- data/config/initializers/warden.rb +14 -0
- data/config/locales/de.yml +53 -0
- data/config/locales/en.yml +54 -0
- data/config/locales/es.yml +50 -0
- data/config/locales/fr.yml +50 -0
- data/config/locales/it.yml +76 -0
- data/config/locales/nl.yml +50 -0
- data/config/locales/pt-BR.yml +52 -0
- data/config/locales/tr.yml +50 -0
- data/config/locales/zh-CN.yml +54 -0
- data/config/routes.rb +71 -0
- data/db/default/users.rb +75 -0
- data/db/migrate/20101026184949_create_users.rb +29 -0
- data/db/migrate/20101026184950_rename_columns_for_devise.rb +41 -0
- data/db/migrate/20101214150824_convert_user_remember_field.rb +11 -0
- data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +8 -0
- data/db/migrate/20120605211305_make_users_email_index_unique.rb +9 -0
- data/db/migrate/20140904000425_add_deleted_at_to_users.rb +6 -0
- data/db/migrate/20141002154641_add_confirmable_to_users.rb +7 -0
- data/db/seeds.rb +1 -0
- data/lib/assets/javascripts/spree/backend/solidus_auth.js +1 -0
- data/lib/assets/javascripts/spree/frontend/solidus_auth.js +1 -0
- data/lib/assets/stylesheets/spree/backend/solidus_auth.css +3 -0
- data/lib/assets/stylesheets/spree/frontend/solidus_auth.css +3 -0
- data/lib/controllers/backend/spree/admin/admin_controller_decorator.rb +11 -0
- data/lib/controllers/backend/spree/admin/orders/customer_details_controller_decorator.rb +15 -0
- data/lib/controllers/backend/spree/admin/user_passwords_controller.rb +41 -0
- data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +43 -0
- data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +66 -0
- data/lib/controllers/frontend/spree/user_confirmations_controller.rb +14 -0
- data/lib/controllers/frontend/spree/user_passwords_controller.rb +50 -0
- data/lib/controllers/frontend/spree/user_registrations_controller.rb +40 -0
- data/lib/controllers/frontend/spree/user_sessions_controller.rb +64 -0
- data/lib/controllers/frontend/spree/users_controller.rb +57 -0
- data/lib/generators/solidus/auth/install/install_generator.rb +25 -0
- data/lib/generators/solidus/auth/install/templates/config/initializers/devise.rb +1 -0
- data/lib/solidus/auth.rb +2 -0
- data/lib/solidus_auth_devise.rb +13 -0
- data/lib/spree/auth/devise.rb +14 -0
- data/lib/spree/auth/engine.rb +80 -0
- data/lib/spree/authentication_helpers.rb +33 -0
- data/lib/tasks/auth.rake +9 -0
- data/lib/views/backend/spree/admin/shared/_navigation_footer.html.erb +25 -0
- data/lib/views/backend/spree/admin/user_passwords/edit.html.erb +15 -0
- data/lib/views/backend/spree/admin/user_passwords/new.html.erb +17 -0
- data/lib/views/backend/spree/admin/user_sessions/authorization_failure.html.erb +4 -0
- data/lib/views/backend/spree/admin/user_sessions/new.html.erb +31 -0
- data/lib/views/backend/spree/layouts/admin/_login_nav.html.erb +13 -0
- data/lib/views/frontend/spree/checkout/registration.html.erb +22 -0
- data/lib/views/frontend/spree/shared/_flashes.html.erb +9 -0
- data/lib/views/frontend/spree/shared/_login.html.erb +18 -0
- data/lib/views/frontend/spree/shared/_login_bar.html.erb +2 -0
- data/lib/views/frontend/spree/shared/_login_bar_items.html.erb +6 -0
- data/lib/views/frontend/spree/shared/_user_form.html.erb +17 -0
- data/lib/views/frontend/spree/user_mailer/confirmation_instructions.text.erb +5 -0
- data/lib/views/frontend/spree/user_mailer/reset_password_instructions.text.erb +10 -0
- data/lib/views/frontend/spree/user_passwords/edit.html.erb +17 -0
- data/lib/views/frontend/spree/user_passwords/new.html.erb +17 -0
- data/lib/views/frontend/spree/user_registrations/new.html.erb +21 -0
- data/lib/views/frontend/spree/user_sessions/authorization_failure.html.erb +4 -0
- data/lib/views/frontend/spree/user_sessions/new.html.erb +13 -0
- data/lib/views/frontend/spree/users/edit.html.erb +14 -0
- data/lib/views/frontend/spree/users/show.html.erb +43 -0
- data/solidus_auth_devise.gemspec +41 -0
- data/spec/controllers/spree/checkout_controller_spec.rb +196 -0
- data/spec/controllers/spree/products_controller_spec.rb +27 -0
- data/spec/controllers/spree/user_passwords_controller_spec.rb +44 -0
- data/spec/controllers/spree/user_registrations_controller_spec.rb +96 -0
- data/spec/controllers/spree/user_sessions_controller_spec.rb +113 -0
- data/spec/controllers/spree/users_controller_spec.rb +38 -0
- data/spec/factories/confirmed_user.rb +7 -0
- data/spec/features/account_spec.rb +58 -0
- data/spec/features/admin/orders_spec.rb +30 -0
- data/spec/features/admin/password_reset_spec.rb +24 -0
- data/spec/features/admin/products_spec.rb +9 -0
- data/spec/features/admin/sign_in_spec.rb +44 -0
- data/spec/features/admin/sign_out_spec.rb +22 -0
- data/spec/features/admin_permissions_spec.rb +46 -0
- data/spec/features/change_email_spec.rb +26 -0
- data/spec/features/checkout_spec.rb +181 -0
- data/spec/features/confirmation_spec.rb +32 -0
- data/spec/features/order_spec.rb +62 -0
- data/spec/features/password_reset_spec.rb +24 -0
- data/spec/features/sign_in_spec.rb +52 -0
- data/spec/features/sign_out_spec.rb +25 -0
- data/spec/features/sign_up_spec.rb +30 -0
- data/spec/mailers/user_mailer_spec.rb +46 -0
- data/spec/models/order_spec.rb +26 -0
- data/spec/models/user_spec.rb +63 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/ability.rb +15 -0
- data/spec/support/authentication_helpers.rb +14 -0
- data/spec/support/confirm_helpers.rb +13 -0
- data/spec/support/email.rb +5 -0
- data/spec/support/preferences.rb +5 -0
- data/spec/support/spree.rb +10 -0
- metadata +446 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddResetPasswordSentAtToSpreeUsers < SolidusSupport::Migration[4.2]
|
2
|
+
def change
|
3
|
+
Spree::User.reset_column_information
|
4
|
+
unless Spree::User.column_names.include?("reset_password_sent_at")
|
5
|
+
add_column :spree_users, :reset_password_sent_at, :datetime
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'default/users.rb'
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require spree/backend
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require spree/frontend
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Spree::Admin::Orders::CustomerDetailsController.class_eval do
|
2
|
+
before_action :check_authorization
|
3
|
+
|
4
|
+
private
|
5
|
+
def check_authorization
|
6
|
+
load_order
|
7
|
+
session[:access_token] ||= params[:token]
|
8
|
+
|
9
|
+
resource = @order
|
10
|
+
action = params[:action].to_sym
|
11
|
+
action = :edit if action == :show # show route renders :edit for this controller
|
12
|
+
|
13
|
+
authorize! action, resource, session[:access_token]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
class Spree::Admin::UserPasswordsController < Devise::PasswordsController
|
2
|
+
helper 'spree/base'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Store
|
7
|
+
|
8
|
+
helper 'spree/admin/navigation'
|
9
|
+
layout 'spree/layouts/admin'
|
10
|
+
|
11
|
+
# Overridden due to bug in Devise.
|
12
|
+
# respond_with resource, location: new_session_path(resource_name)
|
13
|
+
# is generating bad url /session/new.user
|
14
|
+
#
|
15
|
+
# overridden to:
|
16
|
+
# respond_with resource, location: spree.login_path
|
17
|
+
#
|
18
|
+
def create
|
19
|
+
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
|
20
|
+
|
21
|
+
if resource.errors.empty?
|
22
|
+
set_flash_message(:notice, :send_instructions) if is_navigational_format?
|
23
|
+
respond_with resource, location: spree.admin_login_path
|
24
|
+
else
|
25
|
+
respond_with_navigational(resource) { render :new }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# Devise::PasswordsController allows for blank passwords.
|
30
|
+
# Silly Devise::PasswordsController!
|
31
|
+
# Fixes spree/spree#2190.
|
32
|
+
def update
|
33
|
+
if params[:spree_user][:password].blank?
|
34
|
+
set_flash_message(:error, :cannot_be_blank)
|
35
|
+
render :edit
|
36
|
+
else
|
37
|
+
super
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class Spree::Admin::UserSessionsController < Devise::SessionsController
|
2
|
+
helper 'spree/base'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Store
|
7
|
+
|
8
|
+
helper 'spree/admin/navigation'
|
9
|
+
layout 'spree/layouts/admin'
|
10
|
+
|
11
|
+
def create
|
12
|
+
authenticate_spree_user!
|
13
|
+
|
14
|
+
if spree_user_signed_in?
|
15
|
+
respond_to do |format|
|
16
|
+
format.html {
|
17
|
+
flash[:success] = Spree.t(:logged_in_succesfully)
|
18
|
+
redirect_back_or_default(after_sign_in_path_for(spree_current_user))
|
19
|
+
}
|
20
|
+
format.js {
|
21
|
+
user = resource.record
|
22
|
+
render json: {ship_address: user.ship_address, bill_address: user.bill_address}.to_json
|
23
|
+
}
|
24
|
+
end
|
25
|
+
else
|
26
|
+
flash.now[:error] = t('devise.failure.invalid')
|
27
|
+
render :new
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def authorization_failure
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
def accurate_title
|
36
|
+
Spree.t(:login)
|
37
|
+
end
|
38
|
+
|
39
|
+
def redirect_back_or_default(default)
|
40
|
+
redirect_to(session["spree_user_return_to"] || default)
|
41
|
+
session["spree_user_return_to"] = nil
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
Spree::CheckoutController.class_eval do
|
2
|
+
prepend_before_action :check_registration,
|
3
|
+
except: [:registration, :update_registration]
|
4
|
+
prepend_before_action :check_authorization
|
5
|
+
|
6
|
+
# This action builds some associations on the order, ex. addresses, which we
|
7
|
+
# don't to build or save here.
|
8
|
+
skip_before_action :setup_for_current_state, only: [:registration, :update_registration]
|
9
|
+
|
10
|
+
def registration
|
11
|
+
@user = Spree::User.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def update_registration
|
15
|
+
if params[:order][:email] =~ Devise.email_regexp && current_order.update_attributes(email: params[:order][:email])
|
16
|
+
redirect_to spree.checkout_path
|
17
|
+
else
|
18
|
+
flash[:registration_error] = t(:email_is_invalid, scope: [:errors, :messages])
|
19
|
+
@user = Spree::User.new
|
20
|
+
render 'registration'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def order_params
|
26
|
+
params.
|
27
|
+
fetch(:order, {}).
|
28
|
+
permit(:email)
|
29
|
+
end
|
30
|
+
|
31
|
+
def skip_state_validation?
|
32
|
+
%w(registration update_registration).include?(params[:action])
|
33
|
+
end
|
34
|
+
|
35
|
+
def check_authorization
|
36
|
+
authorize!(:edit, current_order, cookies.signed[:guest_token])
|
37
|
+
end
|
38
|
+
|
39
|
+
# Introduces a registration step whenever the +registration_step+ preference is true.
|
40
|
+
def check_registration
|
41
|
+
return unless registration_required?
|
42
|
+
store_location
|
43
|
+
redirect_to spree.checkout_registration_path
|
44
|
+
end
|
45
|
+
|
46
|
+
def registration_required?
|
47
|
+
Spree::Auth::Config[:registration_step] &&
|
48
|
+
!already_registered?
|
49
|
+
end
|
50
|
+
|
51
|
+
def already_registered?
|
52
|
+
spree_current_user || guest_authenticated?
|
53
|
+
end
|
54
|
+
|
55
|
+
def guest_authenticated?
|
56
|
+
current_order.try!(:email).present? &&
|
57
|
+
Spree::Config[:allow_guest_checkout]
|
58
|
+
end
|
59
|
+
|
60
|
+
# Overrides the equivalent method defined in Spree::Core. This variation of the method will ensure that users
|
61
|
+
# are redirected to the tokenized order url unless authenticated as a registered user.
|
62
|
+
def completion_route
|
63
|
+
return spree.order_path(@order) if spree_current_user
|
64
|
+
spree.token_order_path(@order, @order.guest_token)
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Spree::UserConfirmationsController < Devise::ConfirmationsController
|
2
|
+
helper 'spree/base', 'spree/store'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Order
|
7
|
+
include Spree::Core::ControllerHelpers::Store
|
8
|
+
|
9
|
+
protected
|
10
|
+
|
11
|
+
def after_confirmation_path_for(resource_name, resource)
|
12
|
+
signed_in?(resource_name) ? spree.signed_in_root_path(resource) : spree.login_path
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
class Spree::UserPasswordsController < Devise::PasswordsController
|
2
|
+
helper 'spree/base', 'spree/store'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Order
|
7
|
+
include Spree::Core::ControllerHelpers::Store
|
8
|
+
|
9
|
+
# Overridden due to bug in Devise.
|
10
|
+
# respond_with resource, location: new_session_path(resource_name)
|
11
|
+
# is generating bad url /session/new.user
|
12
|
+
#
|
13
|
+
# overridden to:
|
14
|
+
# respond_with resource, location: spree.login_path
|
15
|
+
#
|
16
|
+
def create
|
17
|
+
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
|
18
|
+
|
19
|
+
if resource.errors.empty?
|
20
|
+
set_flash_message(:notice, :send_instructions) if is_navigational_format?
|
21
|
+
respond_with resource, location: spree.login_path
|
22
|
+
else
|
23
|
+
respond_with_navigational(resource) { render :new }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Devise::PasswordsController allows for blank passwords.
|
28
|
+
# Silly Devise::PasswordsController!
|
29
|
+
# Fixes spree/spree#2190.
|
30
|
+
def update
|
31
|
+
if params[:spree_user][:password].blank?
|
32
|
+
self.resource = resource_class.new
|
33
|
+
resource.reset_password_token = params[:spree_user][:reset_password_token]
|
34
|
+
set_flash_message(:error, :cannot_be_blank)
|
35
|
+
render :edit
|
36
|
+
else
|
37
|
+
super
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
protected
|
42
|
+
|
43
|
+
def translation_scope
|
44
|
+
'devise.user_passwords'
|
45
|
+
end
|
46
|
+
|
47
|
+
def new_session_path(resource_name)
|
48
|
+
spree.send("new_#{resource_name}_session_path")
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class Spree::UserRegistrationsController < Devise::RegistrationsController
|
2
|
+
helper 'spree/base', 'spree/store'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Order
|
7
|
+
include Spree::Core::ControllerHelpers::Store
|
8
|
+
|
9
|
+
before_action :check_permissions, only: [:edit, :update]
|
10
|
+
skip_before_action :require_no_authentication
|
11
|
+
|
12
|
+
def create
|
13
|
+
build_resource(spree_user_params)
|
14
|
+
if resource.save
|
15
|
+
set_flash_message(:notice, :signed_up)
|
16
|
+
sign_in(:spree_user, resource)
|
17
|
+
session[:spree_user_signup] = true
|
18
|
+
respond_with resource, location: after_sign_up_path_for(resource)
|
19
|
+
else
|
20
|
+
clean_up_passwords(resource)
|
21
|
+
respond_with(resource) do |format|
|
22
|
+
format.html { render :new }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
def translation_scope
|
29
|
+
'devise.user_registrations'
|
30
|
+
end
|
31
|
+
|
32
|
+
def check_permissions
|
33
|
+
authorize!(:create, resource)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
def spree_user_params
|
38
|
+
params.require(:spree_user).permit(Spree::PermittedAttributes.user_attributes | [:email])
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
class Spree::UserSessionsController < Devise::SessionsController
|
2
|
+
helper 'spree/base', 'spree/store'
|
3
|
+
|
4
|
+
include Spree::Core::ControllerHelpers::Auth
|
5
|
+
include Spree::Core::ControllerHelpers::Common
|
6
|
+
include Spree::Core::ControllerHelpers::Order
|
7
|
+
include Spree::Core::ControllerHelpers::Store
|
8
|
+
|
9
|
+
# This is included in ControllerHelpers::Order. We just want to call
|
10
|
+
# it after someone has successfully logged in.
|
11
|
+
after_action :set_current_order, only: :create
|
12
|
+
|
13
|
+
def create
|
14
|
+
authenticate_spree_user!
|
15
|
+
|
16
|
+
if spree_user_signed_in?
|
17
|
+
respond_to do |format|
|
18
|
+
format.html do
|
19
|
+
flash[:success] = Spree.t(:logged_in_succesfully)
|
20
|
+
redirect_back_or_default(after_sign_in_path_for(spree_current_user))
|
21
|
+
end
|
22
|
+
format.js { render success_json }
|
23
|
+
end
|
24
|
+
else
|
25
|
+
respond_to do |format|
|
26
|
+
format.html do
|
27
|
+
flash.now[:error] = t('devise.failure.invalid')
|
28
|
+
render :new
|
29
|
+
end
|
30
|
+
format.js do
|
31
|
+
render json: { error: t('devise.failure.invalid') },
|
32
|
+
status: :unprocessable_entity
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
def translation_scope
|
41
|
+
'devise.user_sessions'
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def accurate_title
|
47
|
+
Spree.t(:login)
|
48
|
+
end
|
49
|
+
|
50
|
+
def redirect_back_or_default(default)
|
51
|
+
redirect_to(session["spree_user_return_to"] || default)
|
52
|
+
session["spree_user_return_to"] = nil
|
53
|
+
end
|
54
|
+
|
55
|
+
def success_json
|
56
|
+
{
|
57
|
+
json: {
|
58
|
+
user: spree_current_user,
|
59
|
+
ship_address: spree_current_user.ship_address,
|
60
|
+
bill_address: spree_current_user.bill_address
|
61
|
+
}.to_json
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class Spree::UsersController < Spree::StoreController
|
2
|
+
skip_before_action :set_current_order, only: :show, raise: false
|
3
|
+
prepend_before_action :load_object, only: [:show, :edit, :update]
|
4
|
+
prepend_before_action :authorize_actions, only: :new
|
5
|
+
|
6
|
+
include Spree::Core::ControllerHelpers
|
7
|
+
|
8
|
+
def show
|
9
|
+
@orders = @user.orders.complete.order('completed_at desc')
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@user = Spree::User.new(user_params)
|
14
|
+
if @user.save
|
15
|
+
|
16
|
+
if current_order
|
17
|
+
session[:guest_token] = nil
|
18
|
+
end
|
19
|
+
|
20
|
+
redirect_back_or_default(root_url)
|
21
|
+
else
|
22
|
+
render :new
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def update
|
27
|
+
if @user.update_attributes(user_params)
|
28
|
+
if params[:user][:password].present?
|
29
|
+
# this logic needed b/c devise wants to log us out after password changes
|
30
|
+
unless Spree::Auth::Config[:signout_after_password_change]
|
31
|
+
bypass_sign_in(@user)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
redirect_to spree.account_url, notice: Spree.t(:account_updated)
|
35
|
+
else
|
36
|
+
render :edit
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def user_params
|
42
|
+
params.require(:user).permit(Spree::PermittedAttributes.user_attributes | [:email])
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_object
|
46
|
+
@user ||= spree_current_user
|
47
|
+
authorize! params[:action].to_sym, @user
|
48
|
+
end
|
49
|
+
|
50
|
+
def authorize_actions
|
51
|
+
authorize! params[:action].to_sym, Spree::User.new
|
52
|
+
end
|
53
|
+
|
54
|
+
def accurate_title
|
55
|
+
Spree.t(:my_account)
|
56
|
+
end
|
57
|
+
end
|