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 "Email" 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 email — NETig" ) verify_account_button "Confirmer mon adresse électronique" verify_account_set_password? true 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é." ) # 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." ) # Sessions already_logged_in do request.redirect("/") end end end