demarches-normaliennes/app/controllers/administrateurs/activate_controller.rb

55 lines
1.5 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
class Administrateurs::ActivateController < ApplicationController
2018-10-30 18:24:29 +01:00
include TrustedDeviceConcern
def new
@token = params[:token]
2019-08-09 11:41:36 +02:00
user = User.with_reset_password_token(@token)
@administrateur = user&.administrateur
2018-10-30 18:24:29 +01:00
if @administrateur
# the administrateur 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
2021-05-26 15:16:30 +02:00
flash.alert = "Le lien de validation dadministrateur a expiré, #{helpers.contact_link('contactez-nous', tags: 'lien expiré')} pour obtenir un nouveau lien."
redirect_to root_path
end
end
def create
password = update_administrateur_params[:password]
2019-08-09 11:41:36 +02:00
user = User.reset_password_by_token({
password: password,
password_confirmation: password,
reset_password_token: update_administrateur_params[:reset_password_token]
})
if user&.errors&.empty?
2019-08-09 11:41:36 +02:00
sign_in(user, scope: :user)
flash.notice = "Mot de passe enregistré"
redirect_to admin_procedures_path
else
flash.alert = user.errors.full_messages
redirect_to admin_activate_path(token: update_administrateur_params[:reset_password_token])
end
end
private
def update_administrateur_params
params.require(:administrateur).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
end
end
end