solidus_auth_devise 1.0.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.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +11 -0
- data/Gemfile +9 -0
- data/LICENSE.md +26 -0
- data/README.md +88 -0
- data/Rakefile +21 -0
- data/app/controllers/metal_decorator.rb +6 -0
- data/app/mailers/spree/user_mailer.rb +15 -0
- data/app/models/spree/auth_configuration.rb +7 -0
- data/app/models/spree/user.rb +50 -0
- data/app/overrides/auth_shared_login_bar.rb +7 -0
- data/app/overrides/spree/admin/shared/_header/auth_admin_login_navigation_bar.html.erb.deface +4 -0
- data/bin/rails +7 -0
- data/config/initializers/devise.rb +137 -0
- data/config/initializers/warden.rb +14 -0
- data/config/locales/de.yml +49 -0
- data/config/locales/en.yml +55 -0
- data/config/locales/es.yml +49 -0
- data/config/locales/fr.yml +49 -0
- data/config/locales/it.yml +76 -0
- data/config/locales/nl.yml +49 -0
- data/config/locales/pt-BR.yml +51 -0
- data/config/locales/tr.yml +49 -0
- data/config/routes.rb +48 -0
- data/db/default/users.rb +83 -0
- data/db/migrate/20101026184949_create_users.rb +29 -0
- data/db/migrate/20101026184950_rename_columns_for_devise.rb +37 -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 +5 -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 +26 -0
- data/lib/controllers/backend/spree/admin/admin_orders_controller_decorator.rb +20 -0
- data/lib/controllers/backend/spree/admin/admin_resource_controller_decorator.rb +3 -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 +45 -0
- data/lib/controllers/backend/spree/admin/user_sessions_controller.rb +47 -0
- data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +47 -0
- data/lib/controllers/frontend/spree/user_confirmations_controller.rb +21 -0
- data/lib/controllers/frontend/spree/user_passwords_controller.rb +53 -0
- data/lib/controllers/frontend/spree/user_registrations_controller.rb +72 -0
- data/lib/controllers/frontend/spree/user_sessions_controller.rb +53 -0
- data/lib/controllers/frontend/spree/users_controller.rb +57 -0
- data/lib/generators/spree/auth/install/install_generator.rb +26 -0
- data/lib/generators/spree/auth/install/templates/config/initializers/devise.rb +1 -0
- data/lib/solidus/auth.rb +2 -0
- data/lib/solidus_auth_devise.rb +5 -0
- data/lib/spree/auth/devise.rb +20 -0
- data/lib/spree/auth/engine.rb +77 -0
- data/lib/spree/authentication_helpers.rb +26 -0
- data/lib/tasks/auth.rake +9 -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 +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 +42 -0
- data/spec/controllers/spree/admin/orders_controller_spec.rb +14 -0
- data/spec/controllers/spree/checkout_controller_spec.rb +141 -0
- data/spec/controllers/spree/products_controller_spec.rb +21 -0
- data/spec/controllers/spree/user_passwords_controller_spec.rb +44 -0
- data/spec/controllers/spree/user_registrations_controller_spec.rb +13 -0
- data/spec/controllers/spree/user_sessions_controller_spec.rb +56 -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 +29 -0
- data/spec/features/admin/password_reset_spec.rb +24 -0
- data/spec/features/admin/payment_methods_spec.rb +16 -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 +24 -0
- data/spec/features/checkout_spec.rb +165 -0
- data/spec/features/confirmation_spec.rb +28 -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 +58 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/support/ability.rb +15 -0
- data/spec/support/authentication_helpers.rb +14 -0
- data/spec/support/capybara.rb +7 -0
- data/spec/support/confirm_helpers.rb +11 -0
- data/spec/support/database_cleaner.rb +18 -0
- data/spec/support/email.rb +5 -0
- data/spec/support/factory_girl.rb +5 -0
- data/spec/support/spree.rb +26 -0
- metadata +452 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class Spree::UserConfirmationsController < Devise::ConfirmationsController
|
|
2
|
+
helper 'spree/base', 'spree/store'
|
|
3
|
+
|
|
4
|
+
if Spree::Auth::Engine.dash_available?
|
|
5
|
+
helper 'spree/analytics'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
include Spree::Core::ControllerHelpers::Auth
|
|
9
|
+
include Spree::Core::ControllerHelpers::Common
|
|
10
|
+
include Spree::Core::ControllerHelpers::Order
|
|
11
|
+
include Spree::Core::ControllerHelpers::SSL
|
|
12
|
+
include Spree::Core::ControllerHelpers::Store
|
|
13
|
+
|
|
14
|
+
ssl_required
|
|
15
|
+
|
|
16
|
+
protected
|
|
17
|
+
|
|
18
|
+
def after_confirmation_path_for(resource_name, resource)
|
|
19
|
+
signed_in?(resource_name) ? spree.signed_in_root_path(resource) : spree.login_path
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
class Spree::UserPasswordsController < Devise::PasswordsController
|
|
2
|
+
helper 'spree/base', 'spree/store'
|
|
3
|
+
|
|
4
|
+
if Spree::Auth::Engine.dash_available?
|
|
5
|
+
helper 'spree/analytics'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
include Spree::Core::ControllerHelpers::Auth
|
|
9
|
+
include Spree::Core::ControllerHelpers::Common
|
|
10
|
+
include Spree::Core::ControllerHelpers::Order
|
|
11
|
+
include Spree::Core::ControllerHelpers::SSL
|
|
12
|
+
include Spree::Core::ControllerHelpers::Store
|
|
13
|
+
|
|
14
|
+
ssl_required
|
|
15
|
+
|
|
16
|
+
# Overridden due to bug in Devise.
|
|
17
|
+
# respond_with resource, :location => new_session_path(resource_name)
|
|
18
|
+
# is generating bad url /session/new.user
|
|
19
|
+
#
|
|
20
|
+
# overridden to:
|
|
21
|
+
# respond_with resource, :location => spree.login_path
|
|
22
|
+
#
|
|
23
|
+
def create
|
|
24
|
+
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
|
|
25
|
+
|
|
26
|
+
if resource.errors.empty?
|
|
27
|
+
set_flash_message(:notice, :send_instructions) if is_navigational_format?
|
|
28
|
+
respond_with resource, :location => spree.login_path
|
|
29
|
+
else
|
|
30
|
+
respond_with_navigational(resource) { render :new }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Devise::PasswordsController allows for blank passwords.
|
|
35
|
+
# Silly Devise::PasswordsController!
|
|
36
|
+
# Fixes spree/spree#2190.
|
|
37
|
+
def update
|
|
38
|
+
if params[:spree_user][:password].blank?
|
|
39
|
+
self.resource = resource_class.new
|
|
40
|
+
resource.reset_password_token = params[:spree_user][:reset_password_token]
|
|
41
|
+
set_flash_message(:error, :cannot_be_blank)
|
|
42
|
+
render :edit
|
|
43
|
+
else
|
|
44
|
+
super
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
protected
|
|
49
|
+
|
|
50
|
+
def new_session_path(resource_name)
|
|
51
|
+
spree.send("new_#{resource_name}_session_path")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
class Spree::UserRegistrationsController < Devise::RegistrationsController
|
|
2
|
+
helper 'spree/base', 'spree/store'
|
|
3
|
+
|
|
4
|
+
if Spree::Auth::Engine.dash_available?
|
|
5
|
+
helper 'spree/analytics'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
include Spree::Core::ControllerHelpers::Auth
|
|
9
|
+
include Spree::Core::ControllerHelpers::Common
|
|
10
|
+
include Spree::Core::ControllerHelpers::Order
|
|
11
|
+
include Spree::Core::ControllerHelpers::SSL
|
|
12
|
+
include Spree::Core::ControllerHelpers::Store
|
|
13
|
+
|
|
14
|
+
ssl_required
|
|
15
|
+
before_filter :check_permissions, :only => [:edit, :update]
|
|
16
|
+
skip_before_filter :require_no_authentication
|
|
17
|
+
|
|
18
|
+
# GET /resource/sign_up
|
|
19
|
+
def new
|
|
20
|
+
super
|
|
21
|
+
@user = resource
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# POST /resource/sign_up
|
|
25
|
+
def create
|
|
26
|
+
@user = build_resource(spree_user_params)
|
|
27
|
+
if resource.save
|
|
28
|
+
set_flash_message(:notice, :signed_up)
|
|
29
|
+
sign_in(:spree_user, @user)
|
|
30
|
+
session[:spree_user_signup] = true
|
|
31
|
+
associate_user
|
|
32
|
+
respond_with resource, location: after_sign_up_path_for(resource)
|
|
33
|
+
else
|
|
34
|
+
clean_up_passwords(resource)
|
|
35
|
+
render :new
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# GET /resource/edit
|
|
40
|
+
def edit
|
|
41
|
+
super
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# PUT /resource
|
|
45
|
+
def update
|
|
46
|
+
super
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# DELETE /resource
|
|
50
|
+
def destroy
|
|
51
|
+
super
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# GET /resource/cancel
|
|
55
|
+
# Forces the session data which is usually expired after sign
|
|
56
|
+
# in to be expired now. This is useful if the user wants to
|
|
57
|
+
# cancel oauth signing in/up in the middle of the process,
|
|
58
|
+
# removing all OAuth session data.
|
|
59
|
+
def cancel
|
|
60
|
+
super
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
protected
|
|
64
|
+
def check_permissions
|
|
65
|
+
authorize!(:create, resource)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
private
|
|
69
|
+
def spree_user_params
|
|
70
|
+
params.require(:spree_user).permit(Spree::PermittedAttributes.user_attributes)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
class Spree::UserSessionsController < Devise::SessionsController
|
|
2
|
+
helper 'spree/base', 'spree/store'
|
|
3
|
+
if Spree::Auth::Engine.dash_available?
|
|
4
|
+
helper 'spree/analytics'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
include Spree::Core::ControllerHelpers::Auth
|
|
8
|
+
include Spree::Core::ControllerHelpers::Common
|
|
9
|
+
include Spree::Core::ControllerHelpers::Order
|
|
10
|
+
include Spree::Core::ControllerHelpers::SSL
|
|
11
|
+
include Spree::Core::ControllerHelpers::Store
|
|
12
|
+
|
|
13
|
+
ssl_required :new, :create, :destroy, :update
|
|
14
|
+
ssl_allowed :login_bar
|
|
15
|
+
|
|
16
|
+
def create
|
|
17
|
+
authenticate_spree_user!
|
|
18
|
+
|
|
19
|
+
if spree_user_signed_in?
|
|
20
|
+
respond_to do |format|
|
|
21
|
+
format.html {
|
|
22
|
+
flash[:success] = Spree.t(:logged_in_succesfully)
|
|
23
|
+
redirect_back_or_default(after_sign_in_path_for(spree_current_user))
|
|
24
|
+
}
|
|
25
|
+
format.js {
|
|
26
|
+
render :json => {:user => spree_current_user,
|
|
27
|
+
:ship_address => spree_current_user.ship_address,
|
|
28
|
+
:bill_address => spree_current_user.bill_address}.to_json
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
else
|
|
32
|
+
respond_to do |format|
|
|
33
|
+
format.html {
|
|
34
|
+
flash.now[:error] = t('devise.failure.invalid')
|
|
35
|
+
render :new
|
|
36
|
+
}
|
|
37
|
+
format.js {
|
|
38
|
+
render :json => { error: t('devise.failure.invalid') }, status: :unprocessable_entity
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
def accurate_title
|
|
46
|
+
Spree.t(:login)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def redirect_back_or_default(default)
|
|
50
|
+
redirect_to(session["spree_user_return_to"] || default)
|
|
51
|
+
session["spree_user_return_to"] = nil
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
class Spree::UsersController < Spree::StoreController
|
|
2
|
+
ssl_required
|
|
3
|
+
skip_before_filter :set_current_order, :only => :show
|
|
4
|
+
prepend_before_filter :load_object, :only => [:show, :edit, :update]
|
|
5
|
+
prepend_before_filter :authorize_actions, :only => :new
|
|
6
|
+
|
|
7
|
+
include Spree::Core::ControllerHelpers
|
|
8
|
+
|
|
9
|
+
def show
|
|
10
|
+
@orders = @user.orders.complete.order('completed_at desc')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def create
|
|
14
|
+
@user = Spree::User.new(user_params)
|
|
15
|
+
if @user.save
|
|
16
|
+
|
|
17
|
+
if current_order
|
|
18
|
+
session[:guest_token] = nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
redirect_back_or_default(root_url)
|
|
22
|
+
else
|
|
23
|
+
render :new
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def update
|
|
28
|
+
if @user.update_attributes(user_params)
|
|
29
|
+
if params[:user][:password].present?
|
|
30
|
+
# this logic needed b/c devise wants to log us out after password changes
|
|
31
|
+
user = Spree::User.reset_password_by_token(params[:user])
|
|
32
|
+
sign_in(@user, :event => :authentication, :bypass => !Spree::Auth::Config[:signout_after_password_change])
|
|
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)
|
|
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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Auth
|
|
3
|
+
module Generators
|
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
|
5
|
+
def self.source_paths
|
|
6
|
+
paths = self.superclass.source_paths
|
|
7
|
+
paths << File.expand_path('../templates', __FILE__)
|
|
8
|
+
paths.flatten
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def generate_devise_key
|
|
12
|
+
return if ENV['TRAVIS']
|
|
13
|
+
template 'config/initializers/devise.rb', 'config/initializers/devise.rb'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def add_migrations
|
|
17
|
+
run 'bundle exec rake railties:install:migrations FROM=solidus_auth_devise'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def run_migrations
|
|
21
|
+
run 'bundle exec rake db:migrate'
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Devise.secret_key = <%= SecureRandom.hex(50).inspect %>
|
data/lib/solidus/auth.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spree/core'
|
|
2
|
+
require 'devise'
|
|
3
|
+
require 'devise-encryptable'
|
|
4
|
+
require 'cancan'
|
|
5
|
+
|
|
6
|
+
Devise.secret_key = SecureRandom.hex(50)
|
|
7
|
+
|
|
8
|
+
module Spree
|
|
9
|
+
module Auth
|
|
10
|
+
mattr_accessor :default_secret_key
|
|
11
|
+
|
|
12
|
+
def self.config(&block)
|
|
13
|
+
yield(Spree::Auth::Config)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Spree::Auth.default_secret_key = Devise.secret_key
|
|
19
|
+
|
|
20
|
+
require 'spree/auth/engine'
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
require 'devise'
|
|
2
|
+
require 'devise-encryptable'
|
|
3
|
+
|
|
4
|
+
module Spree
|
|
5
|
+
module Auth
|
|
6
|
+
class Engine < Rails::Engine
|
|
7
|
+
isolate_namespace Spree
|
|
8
|
+
engine_name 'solidus_auth'
|
|
9
|
+
|
|
10
|
+
initializer "spree.auth.environment", :before => :load_config_initializers do |app|
|
|
11
|
+
Spree::Auth::Config = Spree::AuthConfiguration.new
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
initializer "solidus_auth_devise.set_user_class", :after => :load_config_initializers do
|
|
15
|
+
Spree.user_class = "Spree::User"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
initializer "solidus_auth_devise.check_secret_token" do
|
|
19
|
+
if Spree::Auth.default_secret_key == Devise.secret_key
|
|
20
|
+
puts "[WARNING] You are not setting Devise.secret_key within your application!"
|
|
21
|
+
puts "You must set this in config/initializers/devise.rb. Here's an example:"
|
|
22
|
+
puts " "
|
|
23
|
+
puts %Q{Devise.secret_key = "#{SecureRandom.hex(50)}"}
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.activate
|
|
28
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
|
|
29
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
|
30
|
+
end
|
|
31
|
+
if Spree::Auth::Engine.backend_available?
|
|
32
|
+
Rails.application.config.assets.precompile += [
|
|
33
|
+
'lib/assets/javascripts/spree/backend/solidus_auth.js',
|
|
34
|
+
'lib/assets/javascripts/spree/backend/solidus_auth.css'
|
|
35
|
+
]
|
|
36
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/backend/*/*/*_decorator*.rb")) do |c|
|
|
37
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
if Spree::Auth::Engine.frontend_available?
|
|
41
|
+
Rails.application.config.assets.precompile += [
|
|
42
|
+
'lib/assets/javascripts/spree/frontend/solidus_auth.js',
|
|
43
|
+
'lib/assets/javascripts/spree/frontend/solidus_auth.css'
|
|
44
|
+
]
|
|
45
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c|
|
|
46
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
ApplicationController.send :include, Spree::AuthenticationHelpers
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.backend_available?
|
|
53
|
+
@@backend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Backend::Engine')
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def self.dash_available?
|
|
57
|
+
@@dash_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Dash::Engine')
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.frontend_available?
|
|
61
|
+
@@frontend_available ||= ::Rails::Engine.subclasses.map(&:instance).map{ |e| e.class.to_s }.include?('Spree::Frontend::Engine')
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
if self.backend_available?
|
|
65
|
+
paths["app/controllers"] << "lib/controllers/backend"
|
|
66
|
+
paths["app/views"] << "lib/views/backend"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
if self.frontend_available?
|
|
70
|
+
paths["app/controllers"] << "lib/controllers/frontend"
|
|
71
|
+
paths["app/views"] << "lib/views/frontend"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
config.to_prepare &method(:activate).to_proc
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module AuthenticationHelpers
|
|
3
|
+
def self.included(receiver)
|
|
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
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def spree_current_user
|
|
11
|
+
current_spree_user
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def spree_login_path
|
|
15
|
+
spree.login_path
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def spree_signup_path
|
|
19
|
+
spree.signup_path
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def spree_logout_path
|
|
23
|
+
spree.logout_path
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
data/lib/tasks/auth.rake
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @spree_user } %>
|
|
2
|
+
<h2><%= Spree.t(:change_my_password) %></h2>
|
|
3
|
+
|
|
4
|
+
<%= form_for @spree_user, :as => :spree_user, :url => spree.update_password_path, :method => :put do |f| %>
|
|
5
|
+
<p>
|
|
6
|
+
<%= f.label :password, Spree.t(:password) %><br />
|
|
7
|
+
<%= f.password_field :password %><br />
|
|
8
|
+
</p>
|
|
9
|
+
<p>
|
|
10
|
+
<%= f.label :password_confirmation, Spree.t(:confirm_password) %><br />
|
|
11
|
+
<%= f.password_field :password_confirmation %><br />
|
|
12
|
+
</p>
|
|
13
|
+
<%= f.hidden_field :reset_password_token %>
|
|
14
|
+
<%= f.submit Spree.t(:update), :class => 'button primary' %>
|
|
15
|
+
<% end %>
|