diff options
| -rw-r--r-- | changelog.d/handle-report-from-deactivated-user.fix | 1 | ||||
| -rw-r--r-- | lib/pleroma/web/common_api.ex | 2 | ||||
| -rw-r--r-- | test/pleroma/web/admin_api/controllers/report_controller_test.exs | 21 | 
3 files changed, 23 insertions, 1 deletions
| diff --git a/changelog.d/handle-report-from-deactivated-user.fix b/changelog.d/handle-report-from-deactivated-user.fix new file mode 100644 index 000000000..6692d1aa8 --- /dev/null +++ b/changelog.d/handle-report-from-deactivated-user.fix @@ -0,0 +1 @@ +Fix handling report from a deactivated user diff --git a/lib/pleroma/web/common_api.ex b/lib/pleroma/web/common_api.ex index 65d08de49..77b3fa5d2 100644 --- a/lib/pleroma/web/common_api.ex +++ b/lib/pleroma/web/common_api.ex @@ -583,7 +583,7 @@ defmodule Pleroma.Web.CommonAPI do    end    def update_report_state(activity_id, state) do -    with %Activity{} = activity <- Activity.get_by_id(activity_id) do +    with %Activity{} = activity <- Activity.get_by_id(activity_id, filter: []) do        Utils.update_report_state(activity, state)      else        nil -> {:error, :not_found} diff --git a/test/pleroma/web/admin_api/controllers/report_controller_test.exs b/test/pleroma/web/admin_api/controllers/report_controller_test.exs index c141cf69d..fb2579a3d 100644 --- a/test/pleroma/web/admin_api/controllers/report_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/report_controller_test.exs @@ -123,6 +123,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do          })        %{ +        reporter: reporter,          id: report_id,          second_report_id: second_report_id        } @@ -266,6 +267,26 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do        assert ModerationLog.get_log_entry_message(second_log_entry) ==                 "@#{admin.nickname} updated report ##{second_report_id} (on user @#{second_activity.user_actor.nickname}) with 'closed' state"      end + +    test "works if reporter is deactivated", %{ +      conn: conn, +      id: id, +      reporter: reporter +    } do +      Pleroma.User.set_activation(reporter, false) + +      conn +      |> put_req_header("content-type", "application/json") +      |> patch("/api/pleroma/admin/reports", %{ +        "reports" => [ +          %{"state" => "resolved", "id" => id} +        ] +      }) +      |> json_response_and_validate_schema(:no_content) + +      activity = Activity.get_by_id_with_user_actor(id) +      assert activity.data["state"] == "resolved" +    end    end    describe "GET /api/pleroma/admin/reports" do | 
