Files
site/app/controllers/users/omniauth_callbacks_controller.rb

35 lines
1.0 KiB
Ruby

# frozen_string_literal: true
# Controller: Callback
#
# Description: Callback method for Bnet
module Users
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
skip_before_action :verify_authenticity_token, only: :bnet
def bnet
@user = User.from_omniauth(request.env['omniauth.auth'])
if @user.persisted?
unless ENV['ALLOWED_BNET_USERS'].split(',').include?(@user.battletag)
set_flash_message(:alert, :not_authorized)
redirect_to root_path
return
end
sign_in_and_redirect @user, event: :authentication
WowCharactersWorker.perform_async(@user.id)
WowMountsCollectionWorker.perform_async(@user.id)
WowPetsCollectionWorker.perform_async(@user.id)
set_flash_message(:notice, :success, kind: 'Bnet') if is_navigational_format?
else
session['devise.bnet_data'] = request.env['omniauth.auth'].except(:extra)
redirect_to new_user_registration_url
end
end
def failure
redirect_to root_path
end
end
end