From 93a4524e84914daf5e4f195014844e4acfc119fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Traull=C3=A9?= Date: Wed, 15 Jul 2026 09:02:12 +0200 Subject: [PATCH 1/7] =?UTF-8?q?Personnalisation=20du=20serveur=20SMTP=20ut?= =?UTF-8?q?ilis=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adresse, port et méthode d'authentification deviennent configurables via variables d'environnement, avec les valeurs Brevo actuelles comme valeurs par défaut pour rester compatible avec l'existant. Signed-off-by: Jean Traullé --- config/application.rb | 6 +++--- config/application.sample.yml | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index d6415c1e3..ac8bedaa2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -53,11 +53,11 @@ class Application < Rails::Application config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - address: "smtp-relay.brevo.com", - port: 587, + address: ENV['SMTP_ADDRESS'].presence || "smtp-relay.brevo.com", + port: ENV['SMTP_PORT'].presence&.to_i || 587, user_name: ENV['SMTP_USER'], password: ENV['SMTP_PASSWORD'], - authentication: :plain + authentication: ENV['SMTP_AUTHENTICATION'].presence&.to_sym || :plain } # Need for +repage, because of https://github.com/rails/rails/commit/b2ab8dd3a4a184f3115e72b55c237c7b66405bd9 diff --git a/config/application.sample.yml b/config/application.sample.yml index fc127c36e..75a6c6021 100644 --- a/config/application.sample.yml +++ b/config/application.sample.yml @@ -60,6 +60,10 @@ SECRET_KEY_BASE: SKYLIGHT_AUTHENTICATION: +# If not provided, fallback to smtp-relay.brevo.com / 587 / plain +SMTP_ADDRESS: +SMTP_PORT: +SMTP_AUTHENTICATION: SMTP_PASSWORD: SMTP_USER: From 3e08a95d1ac5742ea2dfc83973b630ab84e43826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Traull=C3=A9?= Date: Wed, 15 Jul 2026 09:03:44 +0200 Subject: [PATCH 2/7] =?UTF-8?q?D=C3=A9sactive=20Brevo=20si=20sa=20cl=C3=A9?= =?UTF-8?q?=20API=20n'est=20pas=20configur=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jean Traullé --- app/services/brevo/contact_service.rb | 2 ++ app/services/brevo/sms_service.rb | 2 ++ config/initializers/brevo.rb | 2 ++ 3 files changed, 6 insertions(+) diff --git a/app/services/brevo/contact_service.rb b/app/services/brevo/contact_service.rb index 17eaa02b4..f2da1761c 100644 --- a/app/services/brevo/contact_service.rb +++ b/app/services/brevo/contact_service.rb @@ -2,10 +2,12 @@ module Brevo class ContactService def self.sync(user) + return if ENV['BREVO_API_KEY'].blank? new(user).sync end def self.destroy(contact_id, university_id) + return if ENV['BREVO_API_KEY'].blank? api_instance = Brevo::ContactsApi.new other_user = User.where(brevo_contact_id: contact_id).first diff --git a/app/services/brevo/sms_service.rb b/app/services/brevo/sms_service.rb index 1a333784b..4dd3b9da5 100644 --- a/app/services/brevo/sms_service.rb +++ b/app/services/brevo/sms_service.rb @@ -4,6 +4,7 @@ class SmsService SMS_CREDITS_LIMIT = 500 def self.send_mfa_code(user, code) + return if ENV['BREVO_API_KEY'].blank? duration = ActiveSupport::Duration.build(Rails.application.config.devise.direct_otp_valid_for).inspect context = user.registration_context.respond_to?(:to_s_in) ? user.registration_context.to_s_in(user.language) : user.registration_context.to_s @@ -12,6 +13,7 @@ def self.send_mfa_code(user, code) end def sms_credits + return if ENV['BREVO_API_KEY'].blank? @sms_credits ||= plan.detect { |plan| plan.type == 'sms' }&.credits end diff --git a/config/initializers/brevo.rb b/config/initializers/brevo.rb index 6897bb968..bf66af636 100644 --- a/config/initializers/brevo.rb +++ b/config/initializers/brevo.rb @@ -1,3 +1,5 @@ +return if ENV['BREVO_API_KEY'].blank? + # Load the gem require 'brevo' From aea98a2ea5124c0694ebaac0a4e0b18a6d72cd62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean=20Traull=C3=A9?= Date: Wed, 15 Jul 2026 09:05:45 +0200 Subject: [PATCH 3/7] =?UTF-8?q?D=C3=A9sactive=20Bugsnag=20si=20les=20cl?= =?UTF-8?q?=C3=A9s=20d'API=20ne=20sont=20pas=20d=C3=A9finies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jean Traullé --- app/views/application/_bugsnag.html.erb | 2 +- config/initializers/bugsnag.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/application/_bugsnag.html.erb b/app/views/application/_bugsnag.html.erb index 435d2667b..c84d6efc0 100644 --- a/app/views/application/_bugsnag.html.erb +++ b/app/views/application/_bugsnag.html.erb @@ -1,4 +1,4 @@ -<% unless Rails.env.development? %> +<% unless Rails.env.development? || ENV['BUGSNAG_JAVASCRIPT_KEY'].blank? %>