disable france connect authentication for admin and instructeurs

This commit is contained in:
Christophe Robillard 2021-02-01 14:28:04 +01:00
parent 86a3ecb0be
commit a288a13805
8 changed files with 79 additions and 14 deletions

View file

@ -10,22 +10,17 @@ class FranceConnect::ParticulierController < ApplicationController
end
def callback
fetched_fci = FranceConnectService.retrieve_user_informations_particulier(params[:code])
fci = FranceConnectService.find_or_retrieve_france_connect_information(params[:code])
fci.associate_user!
fci = FranceConnectInformation
.find_by(france_connect_particulier_id: fetched_fci[:france_connect_particulier_id]) ||
fetched_fci.tap(&:save)
if fci.user.nil?
user = User.find_or_create_by!(email: fci.email_france_connect.downcase) do |new_user|
new_user.password = Devise.friendly_token[0, 20]
new_user.confirmed_at = Time.zone.now
end
fci.update_attribute('user_id', user.id)
if fci.user && !fci.user.can_france_connect?
fci.destroy
redirect_to new_user_session_path, alert: t('errors.messages.france_connect.forbidden_html', reset_link: new_user_password_path)
return
end
connect_france_connect_particulier(fci.user)
rescue Rack::OAuth2::Client::Error => e
Rails.logger.error e.message
redirect_france_connect_error_connection