From 0b2ec0cceea4774bd652ab3cf353cfc928c2990e Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Fri, 4 Aug 2023 15:37:15 +0100 Subject: [PATCH] Enable AnonymizeFilenames on all uploads --- CHANGELOG.md | 3 +++ lib/pleroma/upload.ex | 9 ++++++++- .../controllers/account_controller_test.exs | 20 +++++++++---------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e1b340df..39949f86f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - other distributions are stable only - Support for Elixir 1.15 - 1.14 is still supported + - OTP26 is currently "unsupported". It will probably work, but due to the way + it handles map ordering, the test suite will not pass for it as yet. ## Changed @@ -25,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). If you use debian OTP builds you will have to update your local system to bookworm (currently: stable). - Blocks/Mutes now return from max ID to min ID, in line with mastodon. +- The AnonymizeFilename filter is now enabled by default. ## Fixed diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 2f65540be..99b6b5215 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -63,6 +63,9 @@ defmodule Pleroma.Upload do blurhash: String.t(), path: String.t() } + + @always_enabled_filters [Pleroma.Upload.Filter.AnonymizeFilename] + defstruct [:id, :name, :tempfile, :content_type, :width, :height, :blurhash, :path] @spec store(source, options :: [option()]) :: {:ok, Map.t()} | {:error, any()} @@ -132,7 +135,11 @@ defp get_opts(opts) do activity_type: Keyword.get(opts, :activity_type, activity_type), size_limit: Keyword.get(opts, :size_limit, size_limit), uploader: Keyword.get(opts, :uploader, Pleroma.Config.get([__MODULE__, :uploader])), - filters: Keyword.get(opts, :filters, Pleroma.Config.get([__MODULE__, :filters])), + filters: + Enum.uniq( + Keyword.get(opts, :filters, Pleroma.Config.get([__MODULE__, :filters])) ++ + @always_enabled_filters + ), description: Keyword.get(opts, :description), base_url: base_url() } diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs index 3e2f0cec1..6ca9cfc50 100644 --- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs @@ -1784,21 +1784,21 @@ test "getting a list of mutes" do |> get("/api/v1/mutes") |> json_response_and_validate_schema(200) - assert [id1, id2, id3] == Enum.map(result, & &1["id"]) + assert [id3, id2, id1] == Enum.map(result, & &1["id"]) result = conn |> get("/api/v1/mutes?limit=1") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id1}] = result + assert [%{"id" => ^id3}] = result result = conn |> get("/api/v1/mutes?since_id=#{id1}") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id2}, %{"id" => ^id3}] = result + assert [%{"id" => ^id3}, %{"id" => ^id2}] = result result = conn @@ -1812,7 +1812,7 @@ test "getting a list of mutes" do |> get("/api/v1/mutes?since_id=#{id1}&limit=1") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id2}] = result + assert [%{"id" => ^id3}] = result end test "list of mutes with with_relationships parameter" do @@ -1831,7 +1831,7 @@ test "list of mutes with with_relationships parameter" do assert [ %{ - "id" => ^id1, + "id" => ^id3, "pleroma" => %{"relationship" => %{"muting" => true, "followed_by" => true}} }, %{ @@ -1839,7 +1839,7 @@ test "list of mutes with with_relationships parameter" do "pleroma" => %{"relationship" => %{"muting" => true, "followed_by" => true}} }, %{ - "id" => ^id3, + "id" => ^id1, "pleroma" => %{"relationship" => %{"muting" => true, "followed_by" => true}} } ] = @@ -1864,7 +1864,7 @@ test "getting a list of blocks" do |> get("/api/v1/blocks") |> json_response_and_validate_schema(200) - assert [id1, id2, id3] == Enum.map(result, & &1["id"]) + assert [id3, id2, id1] == Enum.map(result, & &1["id"]) result = conn @@ -1872,7 +1872,7 @@ test "getting a list of blocks" do |> get("/api/v1/blocks?limit=1") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id1}] = result + assert [%{"id" => ^id3}] = result result = conn @@ -1880,7 +1880,7 @@ test "getting a list of blocks" do |> get("/api/v1/blocks?since_id=#{id1}") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id2}, %{"id" => ^id3}] = result + assert [%{"id" => ^id3}, %{"id" => ^id2}] = result result = conn @@ -1896,7 +1896,7 @@ test "getting a list of blocks" do |> get("/api/v1/blocks?since_id=#{id1}&limit=1") |> json_response_and_validate_schema(200) - assert [%{"id" => ^id2}] = result + assert [%{"id" => ^id3}] = result end test "list of blocks with with_relationships parameter" do