Ensure we capture the application details into the object
authorMark Felder <feld@feld.me>
Wed, 10 Feb 2021 00:07:15 +0000 (18:07 -0600)
committerMark Felder <feld@feld.me>
Wed, 10 Feb 2021 00:07:15 +0000 (18:07 -0600)
lib/pleroma/web/common_api/activity_draft.ex
lib/pleroma/web/mastodon_api/controllers/status_controller.ex

index fb059c27cb61295c0b821616cdbaf2233d1382c1..d7dcdad9019ca423c98993c37957b704be18209c 100644 (file)
@@ -190,6 +190,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
       Utils.make_note_data(draft)
       |> Map.put("emoji", emoji)
       |> Map.put("source", draft.status)
+      |> Map.put("application", draft.params[:application])
 
     %__MODULE__{draft | object: object}
   end
index 4cf2ee35caa0a08e157d509ece83e5b1f6b71feb..47a5bbd60d51e387e632932136376c5dd5293e33 100644 (file)
@@ -132,13 +132,15 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   # Creates a scheduled status when `scheduled_at` param is present and it's far enough
   def create(
         %{
-          assigns: %{user: user},
+          assigns: %{user: user, token: %{app_id: app_id}},
           body_params: %{status: _, scheduled_at: scheduled_at} = params
         } = conn,
         _
       )
       when not is_nil(scheduled_at) do
-    params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+    params =
+      Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+      |> add_application(app_id)
 
     attrs = %{
       params: Map.new(params, fn {key, value} -> {to_string(key), value} end),
@@ -161,8 +163,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   end
 
   # Creates a regular status
-  def create(%{assigns: %{user: user}, body_params: %{status: _} = params} = conn, _) do
-    params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+  def create(
+        %{assigns: %{user: user, token: %{app_id: app_id}}, body_params: %{status: _} = params} =
+          conn,
+        _
+      ) do
+    params =
+      Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+      |> add_application(app_id)
 
     with {:ok, activity} <- CommonAPI.post(user, params) do
       try_render(conn, "show.json",
@@ -414,4 +422,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
       as: :activity
     )
   end
+
+  defp add_application(params, app_id) do
+    params |> Map.put(:application, Pleroma.Web.OAuth.App.get_app_by_id(app_id))
+  end
 end