[#114] Added UserInviteToken creation, adjusted invitation email link to include it.
[akkoma] / lib / pleroma / web / twitter_api / twitter_api_controller.ex
index d51d712991fadb57aaf014bbcc57418cbaf596b8..0607a1a6a833fa6e12ed03a43ab360589d8c2896 100644 (file)
@@ -336,8 +336,12 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
   def confirm_email(_conn, _params), do: :noop
 
   def email_invite(%{assigns: %{user: user}} = conn, %{"email" => email} = params) do
-    with true <- Pleroma.Config.get([:instance, :invites_enabled]),
-         email <- Pleroma.UserEmail.user_invitation_email(user, email, params["name"]),
+    with true <-
+           Pleroma.Config.get([:instance, :invites_enabled]) &&
+             !Pleroma.Config.get([:instance, :registrations_open]),
+         {:ok, invite_token} <- Pleroma.UserInviteToken.create_token(),
+         email <-
+           Pleroma.UserEmail.user_invitation_email(user, invite_token, email, params["name"]),
          {:ok, _} <- Pleroma.Mailer.deliver(email) do
       json_response(conn, :no_content, "")
     end