From ab691efdb22115e479d336130a89e7e0e53f0969 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Tue, 29 Oct 2019 16:20:19 +0100 Subject: [PATCH] Fix LinkedIn sign-up [SCI-4047] --- app/controllers/users/omniauth_callbacks_controller.rb | 10 +++++++--- config/initializers/devise.rb | 3 +-- config/initializers/omniauth.rb | 7 ------- 3 files changed, 8 insertions(+), 12 deletions(-) delete mode 100644 config/initializers/omniauth.rb diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index dcaa55ca1..79c75d232 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -41,13 +41,17 @@ module Users redirect_to after_omniauth_failure_path_for(resource_name) else # Create new user and identity; and redirect to complete sign up form + full_name = "#{auth_hash['info']['first_name']} #{auth_hash['info']['last_name']}" @user = User.new( - full_name: auth_hash['info']['name'], - initials: generate_initials(auth_hash['info']['name']), + full_name: full_name, + initials: generate_initials(full_name), email: auth_hash['info']['email'], password: generate_user_password ) - @user.avatar_remote_url = (auth_hash['info']['image']) + if auth_hash['info']['picture_url'] + avatar = URI.open(auth_hash['info']['picture_url']) + @user.avatar.attach(io: avatar, filename: 'linkedin_avatar.jpg') + end user_identity = UserIdentity.new(user: @user, provider: auth_hash['provider'], uid: auth_hash['uid']) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index ccb11f942..fac8e19c3 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -288,8 +288,7 @@ Devise.setup do |config| # up on your models and hooks. # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' if Rails.configuration.x.enable_user_registration - config.omniauth :linkedin, ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'], - scope: %w(r_basicprofile r_emailaddress) + config.omniauth :linkedin, ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'], scope: 'r_liteprofile r_emailaddress' end # ==> Warden configuration diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb deleted file mode 100644 index 99eac108b..000000000 --- a/config/initializers/omniauth.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'omniauth-linkedin-oauth2' - -if Rails.configuration.x.enable_user_registration - Rails.application.config.middleware.use OmniAuth::Builder do - provider :linkedin, ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'] - end -end