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 " 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é." logout_redirect "/" # 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 case param("kind") when "individual" throw_error_status( 422, "first_name", "doit être renseigné" ) if param("first_name").to_s.strip.empty? throw_error_status( 422, "last_name", "doit être renseigné" ) if param("last_name").to_s.strip.empty? when "organization" throw_error_status( 422, "organization_name", "doit être renseignée" ) if param("organization_name").to_s.strip.empty? else throw_error_status( 422, "kind", "choisissez un type de compte" ) end end after_create_account do member = if param("kind") == "individual" { kind: "individual", first_name: param("first_name").to_s.strip, last_name: param("last_name").to_s.strip, organization_name: nil } else { kind: "organization", first_name: nil, last_name: nil, organization_name: param("organization_name").to_s.strip } 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