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

@ -18,4 +18,18 @@ class FranceConnectInformation < ApplicationRecord
belongs_to :user, optional: true
validates :france_connect_particulier_id, presence: true, allow_blank: false, allow_nil: false
def associate_user!
user = User.find_by(email: email_france_connect.downcase)
if user.nil?
user = User.create!(
email: email_france_connect.downcase,
password: Devise.friendly_token[0, 20],
confirmed_at: Time.zone.now
)
end
update_attribute('user_id', user.id)
end
end

View file

@ -112,6 +112,7 @@ class User < ApplicationRecord
if user.valid?
if user.instructeur_id.nil?
user.create_instructeur!
user.update(france_connect_information: nil)
end
user.instructeur.administrateurs << administrateurs
@ -125,6 +126,7 @@ class User < ApplicationRecord
if user.valid? && user.administrateur_id.nil?
user.create_administrateur!
user.update(france_connect_information: nil)
end
user
@ -152,6 +154,18 @@ class User < ApplicationRecord
last_sign_in_at.present?
end
def administrateur?
administrateur_id.present?
end
def instructeur?
instructeur_id.present?
end
def can_france_connect?
!administrateur? && !instructeur?
end
def can_be_deleted?
administrateur.nil? && instructeur.nil? && dossiers.with_discarded.state_instruction_commencee.empty?
end