From 6fa9a8990d07f942ee52b3d721135b84d79d8a7c Mon Sep 17 00:00:00 2001 From: Leonardo Mosquera Date: Fri, 17 Feb 2023 18:38:21 -0300 Subject: [PATCH] Add username template variables to Welcome User email template (#20352) * Add username and name_or_username variables to SystemMessage defaults * Allow username and name variables on welcome_user email template overrides * Satisfy linting * Add test --- app/models/translation_override.rb | 1 + lib/system_message.rb | 2 ++ spec/models/translation_override_spec.rb | 13 +++++++++++++ 3 files changed, 16 insertions(+) diff --git a/app/models/translation_override.rb b/app/models/translation_override.rb index eddaac89831..32e45186d11 100644 --- a/app/models/translation_override.rb +++ b/app/models/translation_override.rb @@ -35,6 +35,7 @@ class TranslationOverride < ActiveRecord::Base optional_cat optional_tags ], + %w[system_messages.welcome_user] => %w[username name name_or_username], } include HasSanitizableFields diff --git a/lib/system_message.rb b/lib/system_message.rb index 53ce825c800..dadd64edbff 100644 --- a/lib/system_message.rb +++ b/lib/system_message.rb @@ -88,6 +88,8 @@ class SystemMessage { site_name: SiteSetting.title, username: @recipient.username, + name: @recipient.name, + name_or_username: @recipient.name.presence || @recipient.username, user_preferences_url: "#{@recipient.full_url}/preferences", new_user_tips: I18n.with_locale(@recipient.effective_locale) do diff --git a/spec/models/translation_override_spec.rb b/spec/models/translation_override_spec.rb index 16e94c52192..20f3200b430 100644 --- a/spec/models/translation_override_spec.rb +++ b/spec/models/translation_override_spec.rb @@ -84,6 +84,19 @@ RSpec.describe TranslationOverride do end end + describe "with valid custom interpolation keys" do + it "works" do + translation_override = + TranslationOverride.upsert!( + I18n.locale, + "system_messages.welcome_user.text_body_template", + "Hello %{name} %{username} %{name_or_username} and welcome to %{site_name}!", + ) + + expect(translation_override.errors).to be_empty + end + end + describe "pluralized keys" do describe "valid keys" do it "converts zero to other" do