diff options
| -rw-r--r-- | lib/pleroma/moderation_log.ex | 10 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | 3 | ||||
| -rw-r--r-- | test/web/admin_api/controllers/admin_api_controller_test.exs | 23 | 
3 files changed, 33 insertions, 3 deletions
diff --git a/lib/pleroma/moderation_log.ex b/lib/pleroma/moderation_log.ex index 47036a6f6..be1e81467 100644 --- a/lib/pleroma/moderation_log.ex +++ b/lib/pleroma/moderation_log.ex @@ -651,6 +651,16 @@ defmodule Pleroma.ModerationLog do      "@#{actor_nickname} deleted chat message ##{subject_id}"    end +  def get_log_entry_message(%ModerationLog{ +        data: %{ +          "actor" => %{"nickname" => actor_nickname}, +          "action" => "create_backup", +          "subject" => %{"nickname" => user_nickname} +        } +      }) do +    "@#{actor_nickname} requested account backup for @#{user_nickname}" +  end +    defp nicknames_to_string(nicknames) do      nicknames      |> Enum.map(&"@#{&1}") diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index f7d2fe5b1..8b5310d80 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -686,7 +686,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    def create_backup(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do      with %User{} = user <- User.get_by_nickname(nickname),           {:ok, _} <- Pleroma.Backup.create(user, admin.id) do -      Logger.info("Admin @#{admin.nickname} requested account backup for @{nickname}") +      ModerationLog.insert_log(%{actor: admin, subject: user, action: "create_backup"}) +        json(conn, "")      end    end diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs index a6dc4f62d..34d48c2c1 100644 --- a/test/web/admin_api/controllers/admin_api_controller_test.exs +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -2027,9 +2027,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/backups" do      test "it creates a backup", %{conn: conn} do -      admin = insert(:user, is_admin: true) +      admin = %{id: admin_id, nickname: admin_nickname} = insert(:user, is_admin: true)        token = insert(:oauth_admin_token, user: admin) -      user = insert(:user) +      user = %{id: user_id, nickname: user_nickname} = insert(:user)        assert "" ==                 conn @@ -2046,6 +2046,25 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        assert String.contains?(email.html_body, "Admin @#{admin.nickname} requested a full backup")        assert_email_sent(to: {user.name, user.email}, html_body: email.html_body) + +      log_message = "@#{admin_nickname} requested account backup for @#{user_nickname}" + +      assert [ +               %{ +                 data: %{ +                   "action" => "create_backup", +                   "actor" => %{ +                     "id" => ^admin_id, +                     "nickname" => ^admin_nickname +                   }, +                   "message" => ^log_message, +                   "subject" => %{ +                     "id" => ^user_id, +                     "nickname" => ^user_nickname +                   } +                 } +               } +             ] = Pleroma.ModerationLog |> Repo.all()      end      test "it doesn't limit admins", %{conn: conn} do  | 
