X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fadmin_api%2Fcontrollers%2Finstance_controller.ex;h=00857983fbc73d14a77cec08d32a8ad6c2b4cb0e;hb=613f55b078e5daf6df6a5ead4865a051c85940f7;hp=ad6ea89efb2b2d93b15eb2fcf955948e987add76;hpb=25676c84be5d7126f17e009ee87abd2df42fa65c;p=akkoma diff --git a/lib/pleroma/web/admin_api/controllers/instance_controller.ex b/lib/pleroma/web/admin_api/controllers/instance_controller.ex index ad6ea89ef..00857983f 100644 --- a/lib/pleroma/web/admin_api/controllers/instance_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/instance_controller.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.AdminAPI.InstanceController do import Pleroma.Web.ControllerHelper, only: [fetch_integer_param: 3] + alias Pleroma.Instances.Instance alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.AdminAPI alias Pleroma.Web.Plugs.OAuthScopesPlug @@ -18,12 +19,18 @@ defmodule Pleroma.Web.AdminAPI.InstanceController do plug( OAuthScopesPlug, %{scopes: ["admin:read:statuses"]} - when action in [:list_instance_statuses] + when action in [:list_statuses] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["admin:write:accounts", "admin:write:statuses"]} + when action in [:delete] ) action_fallback(AdminAPI.FallbackController) - def list_instance_statuses(conn, %{"instance" => instance} = params) do + def list_statuses(conn, %{"instance" => instance} = params) do with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true {page, page_size} = page_params(params) @@ -41,6 +48,12 @@ defmodule Pleroma.Web.AdminAPI.InstanceController do |> render("index.json", %{total: result[:total], activities: result[:items], as: :activity}) end + def delete(conn, %{"instance" => instance}) do + with {:ok, _job} <- Instance.delete_users_and_activities(instance) do + json(conn, instance) + end + end + defp page_params(params) do { fetch_integer_param(params, "page", 1),