spree_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.

Potentially problematic release.


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

Files changed (67) hide show
  1. data/LICENSE +26 -0
  2. data/README.md +39 -0
  3. data/app/assets/javascripts/admin/spree_auth.js +1 -0
  4. data/app/assets/javascripts/store/spree_auth.js +1 -0
  5. data/app/assets/stylesheets/admin/spree_auth.css +3 -0
  6. data/app/assets/stylesheets/store/spree_auth.css +3 -0
  7. data/app/controllers/spree/admin/admin_controller_decorator.rb +7 -0
  8. data/app/controllers/spree/admin/admin_orders_controller_decorator.rb +14 -0
  9. data/app/controllers/spree/admin/admin_resource_controller_decorator.rb +3 -0
  10. data/app/controllers/spree/admin/admin_users_controller_decorator.rb +21 -0
  11. data/app/controllers/spree/admin/users_controller.rb +77 -0
  12. data/app/controllers/spree/base_controller_decorator.rb +18 -0
  13. data/app/controllers/spree/checkout_controller_decorator.rb +47 -0
  14. data/app/controllers/spree/orders_controller_decorator.rb +15 -0
  15. data/app/controllers/spree/products_controller_decorator.rb +13 -0
  16. data/app/controllers/spree/user_passwords_controller.rb +32 -0
  17. data/app/controllers/spree/user_registrations_controller.rb +63 -0
  18. data/app/controllers/spree/user_sessions_controller.rb +58 -0
  19. data/app/controllers/spree/users_controller.rb +50 -0
  20. data/app/helpers/spree/admin/users_helper.rb +10 -0
  21. data/app/helpers/spree/users_helper.rb +15 -0
  22. data/app/mailers/spree/user_mailer.rb +8 -0
  23. data/app/models/spree/auth_configuration.rb +6 -0
  24. data/app/models/spree/current_order_decorator.rb +12 -0
  25. data/app/models/spree/user.rb +83 -0
  26. data/app/overrides/admin_tab.rb +6 -0
  27. data/app/overrides/auth_admin_login_navigation_bar.rb +5 -0
  28. data/app/overrides/auth_admin_user_roles.rb +6 -0
  29. data/app/overrides/auth_shared_login_bar.rb +7 -0
  30. data/app/overrides/auth_user_login_form.rb +6 -0
  31. data/app/views/spree/admin/users/_form.html.erb +19 -0
  32. data/app/views/spree/admin/users/_roles.html.erb +12 -0
  33. data/app/views/spree/admin/users/edit.html.erb +14 -0
  34. data/app/views/spree/admin/users/index.html.erb +48 -0
  35. data/app/views/spree/admin/users/new.html.erb +14 -0
  36. data/app/views/spree/admin/users/show.html.erb +21 -0
  37. data/app/views/spree/layouts/admin/_login_nav.html.erb +8 -0
  38. data/app/views/spree/shared/_flashes.html.erb +9 -0
  39. data/app/views/spree/shared/_login.html.erb +20 -0
  40. data/app/views/spree/shared/_login_bar.html.erb +6 -0
  41. data/app/views/spree/shared/_user_form.html.erb +17 -0
  42. data/app/views/spree/user_mailer/reset_password_instructions.text.erb +10 -0
  43. data/app/views/spree/user_passwords/edit.html.erb +15 -0
  44. data/app/views/spree/user_passwords/new.html.erb +15 -0
  45. data/app/views/spree/user_registrations/new.html.erb +22 -0
  46. data/app/views/spree/user_sessions/authorization_failure.html.erb +4 -0
  47. data/app/views/spree/user_sessions/new.html.erb +13 -0
  48. data/app/views/spree/users/edit.html.erb +11 -0
  49. data/app/views/spree/users/show.html.erb +43 -0
  50. data/config/initializers/devise.rb +142 -0
  51. data/config/initializers/spree.rb +1 -0
  52. data/config/locales/en.yml +46 -0
  53. data/config/routes.rb +31 -0
  54. data/db/default/users.rb +76 -0
  55. data/db/migrate/20101026184949_create_users.rb +29 -0
  56. data/db/migrate/20101026184950_rename_columns_for_devise.rb +37 -0
  57. data/db/migrate/20101214150824_convert_user_remember_field.rb +11 -0
  58. data/db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb +8 -0
  59. data/db/migrate/20120605211305_make_users_email_index_unique.rb +9 -0
  60. data/db/seeds.rb +5 -0
  61. data/lib/spree/auth/devise.rb +13 -0
  62. data/lib/spree/auth/engine.rb +22 -0
  63. data/lib/spree/auth.rb +1 -0
  64. data/lib/spree/authentication_helpers.rb +26 -0
  65. data/lib/spree_auth_devise.rb +2 -0
  66. data/lib/tasks/auth.rake +9 -0
  67. metadata +160 -0
@@ -0,0 +1,76 @@
1
+ require 'highline/import'
2
+
3
+ # see last line where we create an admin if there is none, asking for email and password
4
+ def prompt_for_admin_password
5
+ if ENV['ADMIN_PASSWORD']
6
+ password = ENV['ADMIN_PASSWORD'].dup
7
+ say "Admin Password #{password}"
8
+ else
9
+ password = ask('Password [spree123]: ') do |q|
10
+ q.echo = false
11
+ q.validate = /^(|.{5,40})$/
12
+ q.responses[:not_valid] = 'Invalid password. Must be at least 5 characters long.'
13
+ q.whitespace = :strip
14
+ end
15
+ password = 'spree123' if password.blank?
16
+ end
17
+
18
+ password
19
+ end
20
+
21
+ def prompt_for_admin_email
22
+ if ENV['ADMIN_EMAIL']
23
+ email = ENV['ADMIN_EMAIL'].dup
24
+ say "Admin User #{email}"
25
+ else
26
+ email = ask('Email [spree@example.com]: ') do |q|
27
+ q.echo = true
28
+ q.whitespace = :strip
29
+ end
30
+ email = 'spree@example.com' if email.blank?
31
+ end
32
+
33
+ email
34
+ end
35
+
36
+ def create_admin_user
37
+ if ENV['AUTO_ACCEPT']
38
+ password = 'spree123'
39
+ email = 'spree@example.com'
40
+ else
41
+ puts 'Create the admin user (press enter for defaults).'
42
+ #name = prompt_for_admin_name unless name
43
+ email = prompt_for_admin_email
44
+ password = prompt_for_admin_password
45
+ end
46
+ attributes = {
47
+ :password => password,
48
+ :password_confirmation => password,
49
+ :email => email,
50
+ :login => email
51
+ }
52
+
53
+ load 'spree/user.rb'
54
+
55
+ if Spree::User.find_by_email(email)
56
+ say "\nWARNING: There is already a user with the email: #{email}, so no account changes were made. If you wish to create an additional admin user, please run rake spree_auth:admin:create again with a different email.\n\n"
57
+ else
58
+ admin = Spree::User.create(attributes)
59
+ # create an admin role and and assign the admin user to that role
60
+ role = Spree::Role.find_or_create_by_name 'admin'
61
+ admin.spree_roles << role
62
+ admin.save
63
+ end
64
+ end
65
+
66
+ if Spree::User.admin.empty?
67
+ create_admin_user
68
+ else
69
+ puts 'Admin user has already been previously created.'
70
+ if agree('Would you like to create a new admin user? (yes/no)')
71
+ create_admin_user
72
+ else
73
+ puts 'No admin user created.'
74
+ end
75
+ end
76
+
@@ -0,0 +1,29 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def up
3
+ unless table_exists?("spree_users")
4
+ create_table "spree_users", :force => true do |t|
5
+ t.string "crypted_password", :limit => 128
6
+ t.string "salt", :limit => 128
7
+ t.string "email"
8
+ t.string "remember_token"
9
+ t.string "remember_token_expires_at"
10
+ t.string "persistence_token"
11
+ t.string "single_access_token"
12
+ t.string "perishable_token"
13
+ t.integer "login_count", :default => 0, :null => false
14
+ t.integer "failed_login_count", :default => 0, :null => false
15
+ t.datetime "last_request_at"
16
+ t.datetime "current_login_at"
17
+ t.datetime "last_login_at"
18
+ t.string "current_login_ip"
19
+ t.string "last_login_ip"
20
+ t.string "login"
21
+ t.integer "ship_address_id"
22
+ t.integer "bill_address_id"
23
+ t.datetime "created_at", :null => false
24
+ t.datetime "updated_at", :null => false
25
+ t.string "openid_identifier"
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,37 @@
1
+ class RenameColumnsForDevise < ActiveRecord::Migration
2
+ def up
3
+ return if column_exists?(:spree_users, :password_salt)
4
+ rename_column :spree_users, :crypted_password, :encrypted_password
5
+ rename_column :spree_users, :salt, :password_salt
6
+ rename_column :spree_users, :remember_token_expires_at, :remember_created_at
7
+ rename_column :spree_users, :login_count, :sign_in_count
8
+ rename_column :spree_users, :failed_login_count, :failed_attempts
9
+ rename_column :spree_users, :single_access_token, :reset_password_token
10
+ rename_column :spree_users, :current_login_at, :current_sign_in_at
11
+ rename_column :spree_users, :last_login_at, :last_sign_in_at
12
+ rename_column :spree_users, :current_login_ip, :current_sign_in_ip
13
+ rename_column :spree_users, :last_login_ip, :last_sign_in_ip
14
+ add_column :spree_users, :authentication_token, :string
15
+ add_column :spree_users, :unlock_token, :string
16
+ add_column :spree_users, :locked_at, :datetime
17
+ remove_column :spree_users, :openid_identifier
18
+ end
19
+
20
+ def down
21
+ remove_column :spree_users, :authentication_token
22
+ remove_column :spree_users, :locked_at
23
+ remove_column :spree_users, :unlock_token
24
+ rename_column :spree_users, :last_sign_in_ip, :last_login_ip
25
+ rename_column :spree_users, :current_sign_in_ip, :current_login_ip
26
+ rename_column :spree_users, :last_sign_in_at, :last_login_at
27
+ rename_column :spree_users, :current_sign_in_at, :current_login_at
28
+ rename_column :spree_users, :reset_password_token, :single_access_token
29
+ rename_column :spree_users, :failed_attempts, :failed_login_count
30
+ rename_column :spree_users, :sign_in_count, :login_count
31
+ rename_column :spree_users, :remember_created_at, :remember_token_expires_at
32
+ rename_column :spree_users, :password_salt, :salt
33
+ rename_column :spree_users, :encrypted_password, :crypted_password
34
+ add_column :spree_users, :unlock_token, :string
35
+ add_column :spree_users, :openid_identifier, :string
36
+ end
37
+ end
@@ -0,0 +1,11 @@
1
+ class ConvertUserRememberField < ActiveRecord::Migration
2
+ def up
3
+ remove_column :spree_users, :remember_created_at
4
+ add_column :spree_users, :remember_created_at, :datetime
5
+ end
6
+
7
+ def down
8
+ remove_column :spree_users, :remember_created_at
9
+ add_column :spree_users, :remember_created_at, :string
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ class AddResetPasswordSentAtToSpreeUsers < ActiveRecord::Migration
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
@@ -0,0 +1,9 @@
1
+ class MakeUsersEmailIndexUnique < ActiveRecord::Migration
2
+ def up
3
+ add_index "spree_users", ["email"], :name => "email_idx_unique", :unique => true
4
+ end
5
+
6
+ def down
7
+ remove_index "spree_users", :name => "email_idx_unique"
8
+ end
9
+ end
data/db/seeds.rb ADDED
@@ -0,0 +1,5 @@
1
+ # Loads seed data out of default dir
2
+ default_path = File.join(File.dirname(__FILE__), 'default')
3
+
4
+ Rake::Task['db:load_dir'].reenable
5
+ Rake::Task['db:load_dir'].invoke(default_path)
@@ -0,0 +1,13 @@
1
+ require 'spree/core'
2
+ require 'devise'
3
+ require 'cancan'
4
+
5
+ module Spree
6
+ module Auth
7
+ def self.config(&block)
8
+ yield(Spree::Auth::Config)
9
+ end
10
+ end
11
+ end
12
+
13
+ require 'spree/auth/engine'
@@ -0,0 +1,22 @@
1
+ module Spree
2
+ module Auth
3
+ class Engine < Rails::Engine
4
+ isolate_namespace Spree
5
+ engine_name 'spree_auth'
6
+
7
+ initializer "spree.auth.environment", :before => :load_config_initializers do |app|
8
+ Spree::Auth::Config = Spree::AuthConfiguration.new
9
+ end
10
+
11
+ def self.activate
12
+ Dir.glob(File.join(File.dirname(__FILE__), "../../../app/**/*_decorator*.rb")) do |c|
13
+ Rails.configuration.cache_classes ? require(c) : load(c)
14
+ end
15
+
16
+ ApplicationController.send :include, Spree::AuthenticationHelpers
17
+ end
18
+
19
+ config.to_prepare &method(:activate).to_proc
20
+ end
21
+ end
22
+ end
data/lib/spree/auth.rb ADDED
@@ -0,0 +1 @@
1
+ require 'spree/auth/devise'
@@ -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_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
@@ -0,0 +1,2 @@
1
+ require 'spree/auth/devise'
2
+ require 'spree/authentication_helpers'
@@ -0,0 +1,9 @@
1
+ namespace :spree_auth do
2
+ namespace :admin do
3
+ desc "Create admin username and password"
4
+ task :create => :environment do
5
+ require File.join(File.dirname(__FILE__), '..', '..', 'db', 'default', 'users.rb')
6
+ puts "Done!"
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_auth_devise
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sean Schofield
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: devise
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.0.4
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.4
46
+ - !ruby/object:Gem::Dependency
47
+ name: cancan
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.6.7
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.6.7
62
+ description: Required dependency for Spree
63
+ email: sean@spreecommerce.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - LICENSE
69
+ - README.md
70
+ - app/assets/javascripts/admin/spree_auth.js
71
+ - app/assets/javascripts/store/spree_auth.js
72
+ - app/assets/stylesheets/admin/spree_auth.css
73
+ - app/assets/stylesheets/store/spree_auth.css
74
+ - app/controllers/spree/admin/admin_controller_decorator.rb
75
+ - app/controllers/spree/admin/admin_orders_controller_decorator.rb
76
+ - app/controllers/spree/admin/admin_resource_controller_decorator.rb
77
+ - app/controllers/spree/admin/admin_users_controller_decorator.rb
78
+ - app/controllers/spree/admin/users_controller.rb
79
+ - app/controllers/spree/base_controller_decorator.rb
80
+ - app/controllers/spree/checkout_controller_decorator.rb
81
+ - app/controllers/spree/orders_controller_decorator.rb
82
+ - app/controllers/spree/products_controller_decorator.rb
83
+ - app/controllers/spree/user_passwords_controller.rb
84
+ - app/controllers/spree/user_registrations_controller.rb
85
+ - app/controllers/spree/user_sessions_controller.rb
86
+ - app/controllers/spree/users_controller.rb
87
+ - app/helpers/spree/admin/users_helper.rb
88
+ - app/helpers/spree/users_helper.rb
89
+ - app/mailers/spree/user_mailer.rb
90
+ - app/models/spree/auth_configuration.rb
91
+ - app/models/spree/current_order_decorator.rb
92
+ - app/models/spree/user.rb
93
+ - app/overrides/admin_tab.rb
94
+ - app/overrides/auth_admin_login_navigation_bar.rb
95
+ - app/overrides/auth_admin_user_roles.rb
96
+ - app/overrides/auth_shared_login_bar.rb
97
+ - app/overrides/auth_user_login_form.rb
98
+ - app/views/spree/admin/users/_form.html.erb
99
+ - app/views/spree/admin/users/_roles.html.erb
100
+ - app/views/spree/admin/users/edit.html.erb
101
+ - app/views/spree/admin/users/index.html.erb
102
+ - app/views/spree/admin/users/new.html.erb
103
+ - app/views/spree/admin/users/show.html.erb
104
+ - app/views/spree/layouts/admin/_login_nav.html.erb
105
+ - app/views/spree/shared/_flashes.html.erb
106
+ - app/views/spree/shared/_login.html.erb
107
+ - app/views/spree/shared/_login_bar.html.erb
108
+ - app/views/spree/shared/_user_form.html.erb
109
+ - app/views/spree/user_mailer/reset_password_instructions.text.erb
110
+ - app/views/spree/user_passwords/edit.html.erb
111
+ - app/views/spree/user_passwords/new.html.erb
112
+ - app/views/spree/user_registrations/new.html.erb
113
+ - app/views/spree/user_sessions/authorization_failure.html.erb
114
+ - app/views/spree/user_sessions/new.html.erb
115
+ - app/views/spree/users/edit.html.erb
116
+ - app/views/spree/users/show.html.erb
117
+ - config/initializers/devise.rb
118
+ - config/initializers/spree.rb
119
+ - config/locales/en.yml
120
+ - config/routes.rb
121
+ - lib/spree/auth/devise.rb
122
+ - lib/spree/auth/engine.rb
123
+ - lib/spree/auth.rb
124
+ - lib/spree/authentication_helpers.rb
125
+ - lib/spree_auth_devise.rb
126
+ - lib/tasks/auth.rake
127
+ - db/default/users.rb
128
+ - db/migrate/20101026184949_create_users.rb
129
+ - db/migrate/20101026184950_rename_columns_for_devise.rb
130
+ - db/migrate/20101214150824_convert_user_remember_field.rb
131
+ - db/migrate/20120203010234_add_reset_password_sent_at_to_spree_users.rb
132
+ - db/migrate/20120605211305_make_users_email_index_unique.rb
133
+ - db/seeds.rb
134
+ homepage: http://spreecommerce.com
135
+ licenses: []
136
+ post_install_message:
137
+ rdoc_options: []
138
+ require_paths:
139
+ - lib
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.8.7
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements:
153
+ - none
154
+ rubyforge_project:
155
+ rubygems_version: 1.8.24
156
+ signing_key:
157
+ specification_version: 3
158
+ summary: Provides authentication and authorization services for use with Spree by
159
+ using Devise and CanCan.
160
+ test_files: []