35 lines
1.0 KiB
Ruby
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
|