2018-04-27 12:29:01 +02:00
class Gestionnaires :: ActivateController < ApplicationController
2018-10-30 18:24:29 +01:00
include TrustedDeviceConcern
2018-04-27 12:29:01 +02:00
def new
@gestionnaire = Gestionnaire . with_reset_password_token ( params [ :token ] )
2018-10-30 18:24:29 +01:00
if @gestionnaire
# the gestionnaire activates its account from an email
2019-02-19 12:40:19 +01:00
trust_device ( Time . zone . now )
2018-10-30 18:24:29 +01:00
else
2018-09-18 12:06:27 +02:00
flash . alert = " Le lien de validation du compte instructeur a expiré, #{ helpers . contact_link ( 'contactez-nous' , tags : 'lien expiré' ) } pour obtenir un nouveau lien. "
2018-04-27 12:29:01 +02:00
redirect_to root_path
end
end
def create
password = create_gestionnaire_params [ :password ]
gestionnaire = Gestionnaire . reset_password_by_token ( {
password : password ,
password_confirmation : password ,
reset_password_token : create_gestionnaire_params [ :reset_password_token ]
} )
if gestionnaire && gestionnaire . errors . empty?
sign_in ( gestionnaire , scope : :gestionnaire )
try_to_authenticate ( User , gestionnaire . email , password )
try_to_authenticate ( Administrateur , gestionnaire . email , password )
flash . notice = " Mot de passe enregistré "
redirect_to gestionnaire_procedures_path
else
flash . alert = gestionnaire . errors . full_messages
redirect_to gestionnaire_activate_path ( token : create_gestionnaire_params [ :reset_password_token ] )
end
end
private
def create_gestionnaire_params
params . require ( :gestionnaire ) . permit ( :reset_password_token , :password )
end
def try_to_authenticate ( klass , email , password )
resource = klass . find_for_database_authentication ( email : email )
if resource & . valid_password? ( password )
sign_in resource
resource . force_sync_credentials
end
end
end