logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 735f40047aad36dbe2b6ff09d073b7362f82f92a
parent: 130fc9eae63ef5860e383c8f31c968103ba3b894
Author: kaniini <nenolod@gmail.com>
Date:   Fri,  8 Mar 2019 22:47:41 +0000

Merge branch 'delete-status' into 'develop'

Allow an admin to delete a user status #721 (MastoAPI)

See merge request pleroma/pleroma!914

Diffstat:

Mlib/pleroma/web/common_api/common_api.ex2+-
Mtest/web/mastodon_api/mastodon_api_controller_test.exs24++++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex @@ -30,7 +30,7 @@ defmodule Pleroma.Web.CommonAPI do def delete(activity_id, user) do with %Activity{data: %{"object" => %{"id" => object_id}}} <- Repo.get(Activity, activity_id), %Object{} = object <- Object.normalize(object_id), - true <- user.info.is_moderator || user.ap_id == object.data["actor"], + true <- User.superuser?(user) || user.ap_id == object.data["actor"], {:ok, _} <- unpin(activity_id, user), {:ok, delete} <- ActivityPub.delete(object) do {:ok, delete} diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -371,6 +371,30 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do assert Repo.get(Activity, activity.id) == activity end + + test "when you're an admin or moderator", %{conn: conn} do + activity1 = insert(:note_activity) + activity2 = insert(:note_activity) + admin = insert(:user, info: %{is_admin: true}) + moderator = insert(:user, info: %{is_moderator: true}) + + res_conn = + conn + |> assign(:user, admin) + |> delete("/api/v1/statuses/#{activity1.id}") + + assert %{} = json_response(res_conn, 200) + + res_conn = + conn + |> assign(:user, moderator) + |> delete("/api/v1/statuses/#{activity2.id}") + + assert %{} = json_response(res_conn, 200) + + refute Repo.get(Activity, activity1.id) + refute Repo.get(Activity, activity2.id) + end end describe "filters" do