send email to moderators for pending user - #877
This commit is contained in:
@@ -295,6 +295,12 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
|
||||
actor = Users.get_actor_for_user(user)
|
||||
|
||||
if Config.instance_registrations_moderation?() do
|
||||
Enum.each(Users.list_moderators(), fn moderator ->
|
||||
moderator
|
||||
|> Email.Admin.user_pending(user)
|
||||
|> Email.Mailer.send_email()
|
||||
end)
|
||||
|
||||
{:ok,
|
||||
%{
|
||||
access_token: "",
|
||||
|
||||
@@ -29,6 +29,22 @@ defmodule Mobilizon.Web.Email.Admin do
|
||||
|> render_body(:report, %{locale: locale, subject: subject, report: report})
|
||||
end
|
||||
|
||||
@spec user_pending(User.t(), User.t()) :: Swoosh.Email.t()
|
||||
def user_pending(%User{email: moderator_email} = moderator, %User{} = user) do
|
||||
locale = Map.get(moderator, :locale, "en")
|
||||
Gettext.put_locale(locale)
|
||||
|
||||
subject =
|
||||
gettext(
|
||||
"New pending user on Mobilizon instance %{instance}",
|
||||
instance: Config.instance_name()
|
||||
)
|
||||
|
||||
[to: moderator_email, subject: subject]
|
||||
|> Email.base_email()
|
||||
|> render_body(:user_pending, %{locale: locale, subject: subject, user: user})
|
||||
end
|
||||
|
||||
@spec user_email_change_old(User.t(), String.t()) :: Swoosh.Email.t()
|
||||
def user_email_change_old(
|
||||
%User{
|
||||
|
||||
73
lib/web/templates/email/user_pending.html.heex
Normal file
73
lib/web/templates/email/user_pending.html.heex
Normal file
@@ -0,0 +1,73 @@
|
||||
<!-- HERO -->
|
||||
<tr>
|
||||
<td bgcolor="#474467" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
||||
<tr>
|
||||
<td
|
||||
bgcolor="#ffffff"
|
||||
align="center"
|
||||
valign="top"
|
||||
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
|
||||
>
|
||||
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
|
||||
<%= gettext("New pending user on <b>%{instance}</b>", instance: @instance_name) |> raw %>
|
||||
</h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- COPY BLOCK -->
|
||||
<tr>
|
||||
<td bgcolor="#E6E4F4" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
||||
<!-- COPY -->
|
||||
<tr>
|
||||
<td
|
||||
bgcolor="#ffffff"
|
||||
align="left"
|
||||
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
|
||||
>
|
||||
<p style="margin: 0;">
|
||||
<%= gettext("New pending user from %{user} on %{instance}",
|
||||
user: @user.email,
|
||||
instance: @instance_name
|
||||
)
|
||||
|> raw %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 3px;" bgcolor="#3C376E">
|
||||
<a
|
||||
href={"#{"#{Mobilizon.Web.Endpoint.url()}/settings/admin/users?pendingFilter=true"}"}
|
||||
target="_blank"
|
||||
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
|
||||
>
|
||||
<%= gettext("Login to view the list of pending users") %>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
3
lib/web/templates/email/user_pending.text.eex
Normal file
3
lib/web/templates/email/user_pending.text.eex
Normal file
@@ -0,0 +1,3 @@
|
||||
<%= gettext "New pending user from %{user} on %{instance}", user: @user.email, instance: @instance_name %>
|
||||
|
||||
<%= gettext "Login to view the list of pending users:" %> <%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/users?pendingFilter=true" %>
|
||||
Reference in New Issue
Block a user