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 " 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, cliquez sur le lien suivant : #{verify_account_email_link} Si vous n'êtes pas à l'origine de cette demande, ignorez ce message. Le Noyau de 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