Files
netig.net/config/rodauth.rb
T
2026-11-03 15:59:30 +01:00

155 lines
3.9 KiB
Ruby

class Netig
plugin :rodauth do
db DB
enable :login, :logout, :create_account, :verify_account
domain ENV.fetch("RODAUTH_DOMAIN")
base_url ENV.fetch("BASE_URL")
hmac_secret ENV.fetch("RODAUTH_HMAC_SECRET")
account_unverified_status_value 1
account_open_status_value 2
normalize_login(&:downcase)
email_from "NETig <noreply@netig.net>"
title_instance_variable :@page_title
# Connexion
login_page_title "Connexion — NETig"
login_label "Adresse électronique"
password_label "Mot de passe"
login_button "Se connecter"
login_notice_flash "Vous êtes maintenant connecté."
login_error_flash "La connexion a échoué."
login_redirect "/temporary_page"
login_return_to_requested_location? true
# Déconnexion
logout_notice_flash "Vous êtes maintenant déconnecté."
# Création de compte
create_account_page_title "Créer un compte — NETig"
create_account_button "Créer mon compte"
create_account_link_text "Créer un compte"
before_create_account do
first_name = param("first_name").to_s.strip
last_name = param("last_name").to_s.strip
organization_name = param("organization_name").to_s.strip
individual =
!first_name.empty? &&
!last_name.empty? &&
organization_name.empty?
organization =
first_name.empty? &&
last_name.empty? &&
!organization_name.empty?
unless individual || organization
throw_error_status(
422,
"first_name",
"Renseignez soit le prénom et le nom, soit la dénomination."
)
end
end
after_create_account do
first_name = param("first_name").to_s.strip
last_name = param("last_name").to_s.strip
organization_name = param("organization_name").to_s.strip
member = if organization_name.empty?
{
kind: "individual",
first_name: first_name,
last_name: last_name,
organization_name: nil
}
else
{
kind: "organization",
first_name: nil,
last_name: nil,
organization_name: organization_name
}
end
db[:members].insert(
member.merge(
account_id: account[:id],
core_member: false
)
)
end
# Vérification de l'adresse électronique
verify_account_page_title(
"Vérifier votre adresse électronique — NETig"
)
verify_account_button "Confirmer mon adresse électronique"
verify_account_set_password? true
verify_account_email_subject(
"Confirmez votre adresse électronique — NETig"
)
verify_account_email_body do
<<~EMAIL
Bonjour,
Pour vérifier votre adresse électronique et activer votre compte
NETig, ouvrez le lien suivant :
#{verify_account_email_link}
Si vous n'êtes pas à l'origine de cette demande, ignorez ce message.
L'équipe NETig
EMAIL
end
verify_account_email_sent_notice_flash(
"Un courriel de vérification vient de vous être envoyé."
)
verify_account_notice_flash(
"Votre adresse électronique est maintenant vérifiée."
)
# Renvoi du courriel de vérification
resend_verify_account_page_title(
"Renvoyer le courriel de vérification — NETig"
)
verify_account_resend_explanatory_text(
"Si vous n'avez pas reçu le courriel de vérification, indiquez " \
"l'adresse électronique associée à votre compte pour demander " \
"un nouvel envoi."
)
verify_account_resend_button "Renvoyer le courriel"
verify_account_resend_link_text(
"Renvoyer le courriel de vérification"
)
verify_account_resend_error_flash(
"Impossible de renvoyer le courriel de vérification. " \
"Vérifiez l'adresse saisie ou réessayez plus tard."
)
# Sessions
already_logged_in do
request.redirect("/")
end
end
end