solidus_social 1.0.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +35 -0
  3. data/.gem_release.yml +5 -0
  4. data/.gitignore +6 -8
  5. data/.rspec +3 -3
  6. data/.rubocop.yml +3 -7
  7. data/.rubocop_todo.yml +42 -0
  8. data/CHANGELOG.md +34 -4
  9. data/Gemfile +23 -0
  10. data/{LICENSE.md → LICENSE} +2 -2
  11. data/README.md +133 -78
  12. data/Rakefile +4 -13
  13. data/app/controllers/spree/admin/authentication_methods_controller.rb +2 -12
  14. data/app/controllers/spree/omniauth_callbacks_controller.rb +46 -42
  15. data/app/controllers/spree/user_authentications_controller.rb +3 -1
  16. data/app/core/spree/permission_sets/authentication_method_display.rb +11 -0
  17. data/app/core/spree/permission_sets/authentication_method_management.rb +11 -0
  18. data/app/decorators/controllers/solidus_social/spree/user_registrations_controller_decorator.rb +27 -0
  19. data/app/decorators/models/solidus_social/spree/user_decorator.rb +28 -0
  20. data/app/helpers/spree/omniauth_callbacks_helper.rb +2 -0
  21. data/app/models/spree/authentication_method.rb +8 -2
  22. data/app/models/spree/social_configuration.rb +3 -0
  23. data/app/models/spree/user_authentication.rb +3 -1
  24. data/app/overrides/add_authentications_to_account_summary.rb +2 -0
  25. data/app/overrides/admin_configuration_decorator.rb +9 -2
  26. data/app/overrides/user_registrations_decorator.rb +2 -0
  27. data/app/views/spree/admin/authentication_methods/_form.html.erb +6 -22
  28. data/app/views/spree/admin/authentication_methods/edit.html.erb +5 -3
  29. data/app/views/spree/admin/authentication_methods/index.html.erb +22 -18
  30. data/app/views/spree/admin/authentication_methods/new.html.erb +5 -3
  31. data/app/views/spree/shared/_social.html.erb +5 -5
  32. data/app/views/spree/shared/_user_form.html.erb +3 -3
  33. data/app/views/spree/users/_new-customer.html.erb +2 -2
  34. data/app/views/spree/users/_social.html.erb +24 -22
  35. data/bin/console +17 -0
  36. data/bin/rails +15 -4
  37. data/bin/rake +7 -0
  38. data/bin/sandbox +72 -0
  39. data/bin/setup +8 -0
  40. data/config/locales/en.yml +1 -0
  41. data/config/locales/es-MX.yml +8 -4
  42. data/config/locales/es.yml +30 -0
  43. data/config/locales/it.yml +26 -0
  44. data/config/routes.rb +7 -5
  45. data/db/migrate/20120120163432_create_user_authentications.rb +3 -1
  46. data/db/migrate/20120123163222_create_authentication_methods.rb +3 -1
  47. data/lib/generators/solidus_social/install/install_generator.rb +13 -5
  48. data/lib/generators/solidus_social/install/templates/config/initializers/solidus_social.rb +50 -0
  49. data/lib/solidus_social.rb +24 -8
  50. data/lib/solidus_social/engine.rb +29 -55
  51. data/lib/solidus_social/facebook_omniauth_strategy_ext.rb +25 -0
  52. data/lib/solidus_social/factories.rb +4 -0
  53. data/lib/solidus_social/version.rb +3 -16
  54. data/solidus_social.gemspec +43 -46
  55. data/spec/controllers/spree/omniauth_callbacks_controller_spec.rb +42 -9
  56. data/spec/features/spree/admin/authentication_methods_configuration_spec.rb +21 -27
  57. data/spec/features/spree/sign_in_spec.rb +27 -19
  58. data/spec/lib/solidus_social/engine_spec.rb +9 -0
  59. data/spec/lib/solidus_social_speec.rb +25 -0
  60. data/spec/lib/spree/social_config_spec.rb +11 -0
  61. data/spec/models/spree/authentication_method_spec.rb +19 -0
  62. data/spec/models/spree/social_configuration_spec.rb +6 -0
  63. data/spec/models/spree/user_decorator_spec.rb +25 -2
  64. data/spec/spec_helper.rb +17 -29
  65. data/spec/support/omniauth.rb +4 -0
  66. metadata +71 -198
  67. data/.hound.yml +0 -26
  68. data/.travis.yml +0 -19
  69. data/Guardfile +0 -10
  70. data/app/assets/javascripts/spree/backend/solidus_social.js +0 -1
  71. data/app/assets/javascripts/spree/frontend/solidus_social.js +0 -1
  72. data/app/assets/stylesheets/spree/backend/solidus_social.css +0 -3
  73. data/app/controllers/spree/user_registrations_controller_decorator.rb +0 -15
  74. data/app/models/spree/user_decorator.rb +0 -16
  75. data/app/views/spree/admin/shared/_configurations_menu.html.erb +0 -4
  76. data/config/initializers/devise.rb +0 -13
  77. data/spec/lib/spree_social/engine_spec.rb +0 -16
  78. data/spec/support/capybara.rb +0 -18
  79. data/spec/support/database_cleaner.rb +0 -24
  80. data/spec/support/devise.rb +0 -3
  81. data/spec/support/factory_girl.rb +0 -7
  82. data/spec/support/spree.rb +0 -8
data/.hound.yml DELETED
@@ -1,26 +0,0 @@
1
- ---
2
- # Too picky.
3
- LineLength:
4
- Enabled: false
5
-
6
- # This should truly be on for well documented gems.
7
- Documentation:
8
- Enabled: false
9
-
10
- # Neatly aligned code is too swell.
11
- SingleSpaceBeforeFirstArg:
12
- Enabled: false
13
-
14
- # Don't mess with RSpec DSL.
15
- Blocks:
16
- Exclude:
17
- - 'spec/**/*'
18
-
19
- # We really like the readability with newline in beginning of classes.
20
- EmptyLinesAroundBlockBody:
21
- Enabled: false
22
-
23
- # Use nested module/class definitions instead of compact style.
24
- # Too high git impact to change this now.
25
- ClassAndModuleChildren:
26
- Enabled: false
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- ---
2
- language: ruby
3
- rvm:
4
- - 2.1
5
- - 2.2
6
- - '2.3.0'
7
- env:
8
- matrix:
9
- - SOLIDUS_BRANCH=master
10
- - SOLIDUS_BRANCH=v1.2
11
- - SOLIDUS_BRANCH=v1.1
12
- - SOLIDUS_BRANCH=v1.0
13
- sudo: false
14
- before_script:
15
- - sh -e /etc/init.d/xvfb start
16
- - export DISPLAY=:99.0
17
- - bundle exec rake test_app
18
- script:
19
- - bundle exec rspec spec
data/Guardfile DELETED
@@ -1,10 +0,0 @@
1
- guard 'rspec', cmd: 'bundle exec rspec' do
2
- watch('spec/spec_helper.rb') { 'spec' }
3
- watch('config/routes.rb') { 'spec/controllers' }
4
- watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
5
- watch(%r{^app/(.+)_decorator\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
6
- watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
- watch(%r{^app/(.*)(\.erb)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
8
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
9
- watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" }
10
- end
@@ -1 +0,0 @@
1
- //= require spree/backend
@@ -1 +0,0 @@
1
- //= require spree/frontend
@@ -1,3 +0,0 @@
1
- /*
2
- *= require spree/backend
3
- */
@@ -1,15 +0,0 @@
1
- Spree::UserRegistrationsController.class_eval do
2
- after_action :clear_omniauth, only: :create
3
-
4
- private
5
-
6
- def build_resource(*args)
7
- super
8
- @spree_user.apply_omniauth(session[:omniauth]) if session[:omniauth]
9
- @spree_user
10
- end
11
-
12
- def clear_omniauth
13
- session[:omniauth] = nil unless @spree_user.new_record?
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- Spree.user_class.class_eval do
2
- has_many :user_authentications, dependent: :destroy
3
-
4
- devise :omniauthable
5
-
6
- def apply_omniauth(omniauth)
7
- if %w(facebook google_oauth2).include? omniauth['provider']
8
- self.email = omniauth['info']['email'] if email.blank?
9
- end
10
- user_authentications.build(provider: omniauth['provider'], uid: omniauth['uid'])
11
- end
12
-
13
- def password_required?
14
- (user_authentications.empty? || !password.blank?) && super
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- <tr>
2
- <td><%= link_to Spree.t(:social_authentication_methods), spree.admin_authentication_methods_path %></td>
3
- <td><%= Spree.t(:social_authentication_methods_description) %></td>
4
- </tr>
@@ -1,13 +0,0 @@
1
- SolidusSocial::OAUTH_PROVIDERS.each do |provider|
2
- SolidusSocial.init_provider(provider[1])
3
- end
4
-
5
- OmniAuth.config.logger = Logger.new(STDOUT)
6
- OmniAuth.logger.progname = 'omniauth'
7
-
8
- OmniAuth.config.on_failure = proc do |env|
9
- env['devise.mapping'] = Devise.mappings[Spree.user_class.table_name.singularize.to_sym]
10
- controller_name = ActiveSupport::Inflector.camelize(env['devise.mapping'].controllers[:omniauth_callbacks])
11
- controller_klass = ActiveSupport::Inflector.constantize("#{controller_name}Controller")
12
- controller_klass.action(:failure).call(env)
13
- end
@@ -1,16 +0,0 @@
1
- RSpec.describe SolidusSocial do
2
- context 'constants' do
3
- it { is_expected.to be_const_defined(:OAUTH_PROVIDERS) }
4
-
5
- it 'contain all providers' do
6
- oauth_providers = [
7
- %w(Amazon amazon),
8
- %w(Facebook facebook),
9
- %w(Twitter twitter),
10
- %w(Github github),
11
- %w(Google google_oauth2)
12
- ]
13
- expect(described_class::OAUTH_PROVIDERS).to match_array oauth_providers
14
- end
15
- end
16
- end
@@ -1,18 +0,0 @@
1
- require 'capybara/rspec'
2
- require 'capybara/rails'
3
- require 'capybara/poltergeist'
4
-
5
- RSpec.configure do |config|
6
- config.include Rack::Test::Methods, type: :requests
7
-
8
- Capybara.javascript_driver = :poltergeist
9
- Capybara.register_driver(:poltergeist) do |app|
10
- Capybara::Poltergeist::Driver.new app, js_errors: true, timeout: 60
11
- end
12
-
13
- config.before(:each, :js) do
14
- if Capybara.javascript_driver == :selenium
15
- page.driver.browser.manage.window.maximize
16
- end
17
- end
18
- end
@@ -1,24 +0,0 @@
1
- require 'database_cleaner'
2
-
3
- RSpec.configure do |config|
4
-
5
- config.before(:suite) do
6
- DatabaseCleaner.clean_with :truncation
7
- end
8
-
9
- config.before do
10
- DatabaseCleaner.strategy = :transaction
11
- end
12
-
13
- config.before(:each, :js) do
14
- DatabaseCleaner.strategy = :truncation
15
- end
16
-
17
- config.before do
18
- DatabaseCleaner.start
19
- end
20
-
21
- config.after do
22
- DatabaseCleaner.clean
23
- end
24
- end
@@ -1,3 +0,0 @@
1
- RSpec.configure do |config|
2
- config.include Devise::TestHelpers, type: :controller
3
- end
@@ -1,7 +0,0 @@
1
- require 'factory_girl'
2
-
3
- FactoryGirl.find_definitions
4
-
5
- RSpec.configure do |config|
6
- config.include FactoryGirl::Syntax::Methods
7
- end
@@ -1,8 +0,0 @@
1
- require 'spree/testing_support/factories'
2
- require 'spree/testing_support/authorization_helpers'
3
- require 'spree/testing_support/url_helpers'
4
- require 'spree/testing_support/capybara_ext'
5
-
6
- RSpec.configure do |config|
7
- config.include Spree::TestingSupport::UrlHelpers
8
- end