Merge branch 'tests/mastodon-common-api' into 'develop'
[akkoma] / lib / pleroma / web / common_api / utils.ex
index 94b2c50fc294a0b0ccb060db21a99a2c4fef6f78..fcc0009695bc4560af4c561081d9fa553f9544fe 100644 (file)
@@ -6,11 +6,11 @@ defmodule Pleroma.Web.CommonAPI.Utils do
   import Pleroma.Web.Gettext
 
   alias Calendar.Strftime
-  alias Comeonin.Pbkdf2
   alias Pleroma.Activity
   alias Pleroma.Config
   alias Pleroma.Formatter
   alias Pleroma.Object
+  alias Pleroma.Plugs.AuthenticationPlug
   alias Pleroma.Repo
   alias Pleroma.User
   alias Pleroma.Web.ActivityPub.Utils
@@ -100,7 +100,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
     end
   end
 
-  def get_to_and_cc(_user, _mentions, _inReplyTo, _), do: {[], []}
+  def get_to_and_cc(_user, mentions, _inReplyTo, {:list, _}), do: {mentions, []}
 
   def get_addressed_users(_, to) when is_list(to) do
     User.get_ap_ids_by_nicknames(to)
@@ -108,19 +108,20 @@ defmodule Pleroma.Web.CommonAPI.Utils do
 
   def get_addressed_users(mentioned_users, _), do: mentioned_users
 
-  def maybe_add_list_data(additional_data, user, {:list, list_id}) do
+  def maybe_add_list_data(activity_params, user, {:list, list_id}) do
     case Pleroma.List.get(list_id, user) do
       %Pleroma.List{} = list ->
-        additional_data
-        |> Map.put("listMessage", list.ap_id)
-        |> Map.put("bcc", [list.ap_id])
+        activity_params
+        |> put_in([:additional, "bcc"], [list.ap_id])
+        |> put_in([:additional, "listMessage"], list.ap_id)
+        |> put_in([:object, "listMessage"], list.ap_id)
 
       _ ->
-        additional_data
+        activity_params
     end
   end
 
-  def maybe_add_list_data(additional_data, _, _), do: additional_data
+  def maybe_add_list_data(activity_params, _, _), do: activity_params
 
   def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data)
       when is_list(options) do
@@ -387,7 +388,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
 
   def confirm_current_password(user, password) do
     with %User{local: true} = db_user <- User.get_cached_by_id(user.id),
-         true <- Pbkdf2.checkpw(password, db_user.password_hash) do
+         true <- AuthenticationPlug.checkpw(password, db_user.password_hash) do
       {:ok, db_user}
     else
       _ -> {:error, dgettext("errors", "Invalid password.")}