From 6d8710f0fe6de899860d682f40bc79ddfb483d1e Mon Sep 17 00:00:00 2001
From: Thomas Citharel <tcit@tcit.fr>
Date: Tue, 1 Dec 2020 10:21:07 +0100
Subject: [PATCH] Send the membership emails in the correct language
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

And send them as well if the member is on the same instance 🙈

Close #472

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
---
 lib/federation/activity_pub/activity_pub.ex   | 3 ++-
 lib/federation/activity_pub/transmogrifier.ex | 3 +--
 lib/web/email/group.ex                        | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/federation/activity_pub/activity_pub.ex b/lib/federation/activity_pub/activity_pub.ex
index c1bcc8062..c50777253 100644
--- a/lib/federation/activity_pub/activity_pub.ex
+++ b/lib/federation/activity_pub/activity_pub.ex
@@ -526,7 +526,8 @@ defmodule Mobilizon.Federation.ActivityPub do
              local
            ),
          :ok <- maybe_federate(activity),
-         :ok <- maybe_relay_if_group_activity(activity) do
+         :ok <- maybe_relay_if_group_activity(activity),
+         :ok <- Group.send_invite_to_user(member) do
       {:ok, activity, member}
     end
   end
diff --git a/lib/federation/activity_pub/transmogrifier.ex b/lib/federation/activity_pub/transmogrifier.ex
index 8d804ecb5..546d3c7ff 100644
--- a/lib/federation/activity_pub/transmogrifier.ex
+++ b/lib/federation/activity_pub/transmogrifier.ex
@@ -674,8 +674,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
          {:ok, %Actor{} = target} <-
            target |> Utils.get_url() |> ActivityPub.get_or_fetch_actor_by_url(),
          {:ok, activity, %Member{} = member} <-
-           ActivityPub.invite(object, actor, target, false, %{url: id}),
-         :ok <- Group.send_invite_to_user(member) do
+           ActivityPub.invite(object, actor, target, false, %{url: id}) do
       {:ok, activity, member}
     end
   end
diff --git a/lib/web/email/group.ex b/lib/web/email/group.ex
index f81044d62..440c0f20b 100644
--- a/lib/web/email/group.ex
+++ b/lib/web/email/group.ex
@@ -24,7 +24,8 @@ defmodule Mobilizon.Web.Email.Group do
           member,
         locale
       ) do
-    with %User{email: email} <- Users.get_user!(user_id) do
+    with %User{email: email} = user <- Users.get_user!(user_id) do
+      locale = Map.get(user, :locale, locale)
       Gettext.put_locale(locale)
       %Actor{name: invited_by_name} = inviter = Actors.get_actor(member.invited_by_id)