185 lines
4.8 KiB
Ruby
185 lines
4.8 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 { |login| login.to_s.strip.downcase }
|
|
|
|
email_from "NETig <noreply@netig.net>"
|
|
|
|
title_instance_variable :@page_title
|
|
|
|
# Connexion
|
|
login_page_title "Connexion — NETig"
|
|
login_label "Email"
|
|
password_label "Mot de passe"
|
|
login_button "Se connecter"
|
|
|
|
login_notice_flash "Vous êtes maintenant connecté."
|
|
login_error_flash "La connexion a échoué."
|
|
|
|
attempt_to_login_to_unverified_account_error_flash(
|
|
"Votre adresse électronique n'a pas encore été vérifiée."
|
|
)
|
|
|
|
login_redirect "/account"
|
|
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"
|
|
|
|
create_account_redirect "/create-account"
|
|
|
|
create_account_error_flash(
|
|
"Impossible de créer votre compte. Vérifiez les informations saisies."
|
|
)
|
|
|
|
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 email — NETig"
|
|
verify_account_button "Confirmer mon email"
|
|
verify_account_set_password? true
|
|
|
|
verify_account_redirect "/account"
|
|
|
|
verify_account_email_subject(
|
|
"Confirmez votre email — NETig"
|
|
)
|
|
|
|
verify_account_email_body do
|
|
<<~EMAIL
|
|
Bonjour,
|
|
|
|
Pour vérifier votre email 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 email de vérification vient de vous être envoyé."
|
|
)
|
|
|
|
verify_account_notice_flash(
|
|
"Votre email est maintenant vérifié."
|
|
)
|
|
|
|
verify_account_error_flash(
|
|
"Impossible de vérifier votre adresse électronique."
|
|
)
|
|
|
|
no_matching_verify_account_key_error_flash(
|
|
"Le lien de vérification est invalide ou a expiré."
|
|
)
|
|
|
|
attempt_to_create_unverified_account_error_flash(
|
|
"Un compte utilisant cette adresse attend déjà sa vérification."
|
|
)
|
|
|
|
# Renvoi du courriel de vérification
|
|
resend_verify_account_page_title(
|
|
"Renvoyer l'email de vérification — NETig"
|
|
)
|
|
|
|
verify_account_resend_explanatory_text(
|
|
"Si vous n'avez pas reçu l'email de vérification, indiquez " \
|
|
"l'email associé à votre compte pour demander " \
|
|
"un nouvel envoi."
|
|
)
|
|
|
|
verify_account_resend_button "Renvoyer l'email"
|
|
|
|
verify_account_resend_link_text(
|
|
"Renvoyer l'email de vérification"
|
|
)
|
|
|
|
verify_account_resend_error_flash(
|
|
"Impossible de renvoyer l'email de vérification. " \
|
|
"Vérifiez l'email saisi ou réessayez plus tard."
|
|
)
|
|
|
|
verify_account_email_recently_sent_error_flash(
|
|
"Un email de vérification vient de vous être envoyé. " \
|
|
"Veuillez patienter avant d'en demander un autre."
|
|
)
|
|
|
|
verify_account_email_sent_redirect "/verify-account-resend"
|
|
verify_account_email_recently_sent_redirect "/verify-account-resend"
|
|
|
|
# Sessions
|
|
already_logged_in do
|
|
request.redirect("/account")
|
|
end
|
|
end
|
|
end
|