aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-12-06 14:25:13 +0100
committerlain <lain@soykaf.club>2019-12-06 14:25:13 +0100
commite8cee4d9a0ea13db8d087e42eb17939bb8b11f0b (patch)
tree3fd6a38348b0dbad51c84e1f3a9090f4e573a4be /lib/pleroma
parent67d8df04a440ec9b2949bdddd3a3d8dd70c9b140 (diff)
downloadpleroma-e8cee4d9a0ea13db8d087e42eb17939bb8b11f0b.tar.gz
ActivityPub: For user timelines, respects blocks.
Unless the timeline belongs to a blocked user.
Diffstat (limited to 'lib/pleroma')
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex9
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/account_controller.ex6
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index b07a94701..c5bc1ef0d 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -748,6 +748,15 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> Map.put("whole_db", true)
|> Map.put("pinned_activity_ids", user.pinned_activities)
+ params =
+ if User.blocks?(reading_user, user) do
+ params
+ else
+ params
+ |> Map.put("blocking_user", reading_user)
+ |> Map.put("muting_user", reading_user)
+ end
+
recipients =
user_activities_recipients(%{
"godmode" => params["godmode"],
diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
index d71a14434..d19029cb5 100644
--- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex
@@ -249,7 +249,11 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
@doc "GET /api/v1/accounts/:id/statuses"
def statuses(%{assigns: %{user: reading_user}} = conn, params) do
with %User{} = user <- User.get_cached_by_nickname_or_id(params["id"], for: reading_user) do
- params = Map.put(params, "tag", params["tagged"])
+ params =
+ params
+ |> Map.put("tag", params["tagged"])
+ |> Map.delete("godmode")
+
activities = ActivityPub.fetch_user_activities(user, reading_user, params)
conn