summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2022-12-23 17:06:09 +0100
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2022-12-23 17:06:09 +0100
commit3fbd42061cf791bb5e33fb08701429ea63378e56 (patch)
tree29e7b907315f7129371292da702335bc579044ee
parent7d68d64d633a8ba43965a6f93d22cb0ae76027e0 (diff)
Revert "Delete report notifs when demoting from superuser"
This reverts commit 4504c810802e2253599f06ddf6d58d3389fb23ac.
-rw-r--r--lib/pleroma/notification.ex8
-rw-r--r--lib/pleroma/user.ex16
-rw-r--r--test/pleroma/notification_test.exs19
-rw-r--r--test/pleroma/user_test.exs21
4 files changed, 1 insertions, 63 deletions
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index d661d6ab2..aba6096bc 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -338,14 +338,6 @@ defmodule Pleroma.Notification do
|> Repo.delete_all()
end
- def destroy_multiple_from_types(%{id: user_id}, types) do
- from(n in Notification,
- where: n.user_id == ^user_id,
- where: n.type in ^types
- )
- |> Repo.delete_all()
- end
-
def dismiss(%Pleroma.Activity{} = activity) do
Notification
|> where([n], n.activity_id == ^activity.id)
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index f32907f01..f6e30555c 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1202,24 +1202,10 @@ defmodule Pleroma.User do
|> update_and_set_cache()
end
- def update_and_set_cache(%{data: %Pleroma.User{} = user} = changeset) do
- was_superuser_before_update = User.superuser?(user)
-
+ def update_and_set_cache(changeset) do
with {:ok, user} <- Repo.update(changeset, stale_error_field: :id) do
set_cache(user)
end
- |> maybe_remove_report_notifications(was_superuser_before_update)
- end
-
- defp maybe_remove_report_notifications({:ok, %Pleroma.User{} = user} = result, true) do
- if not User.superuser?(user),
- do: user |> Notification.destroy_multiple_from_types(["pleroma:report"])
-
- result
- end
-
- defp maybe_remove_report_notifications(result, _) do
- result
end
def get_user_friends_ap_ids(user) do
diff --git a/test/pleroma/notification_test.exs b/test/pleroma/notification_test.exs
index d33da8efa..255097ed0 100644
--- a/test/pleroma/notification_test.exs
+++ b/test/pleroma/notification_test.exs
@@ -548,25 +548,6 @@ defmodule Pleroma.NotificationTest do
end
end
- describe "destroy_multiple_from_types/2" do
- test "clears all notifications of a certain type for a given user" do
- report_activity = insert(:report_activity)
- user1 = insert(:user, is_moderator: true, is_admin: true)
- user2 = insert(:user, is_moderator: true, is_admin: true)
- {:ok, _} = Notification.create_notifications(report_activity)
-
- {:ok, _} =
- CommonAPI.post(user2, %{
- status: "hey @#{user1.nickname} !"
- })
-
- Notification.destroy_multiple_from_types(user1, ["pleroma:report"])
-
- assert [%Pleroma.Notification{type: "mention"}] = Notification.for_user(user1)
- assert [%Pleroma.Notification{type: "pleroma:report"}] = Notification.for_user(user2)
- end
- end
-
describe "set_read_up_to()" do
test "it sets all notifications as read up to a specified notification ID" do
user = insert(:user)
diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs
index c92850a78..c16312a65 100644
--- a/test/pleroma/user_test.exs
+++ b/test/pleroma/user_test.exs
@@ -5,7 +5,6 @@
defmodule Pleroma.UserTest do
alias Pleroma.Activity
alias Pleroma.Builders.UserBuilder
- alias Pleroma.Notification
alias Pleroma.Object
alias Pleroma.Repo
alias Pleroma.Tests.ObanHelpers
@@ -2461,26 +2460,6 @@ defmodule Pleroma.UserTest do
assert {:ok, user} = Cachex.get(:user_cache, "ap_id:#{user.ap_id}")
assert %User{bio: "test-bio"} = User.get_cached_by_ap_id(user.ap_id)
end
-
- test "removes report notifs when user isn't superuser any more" do
- report_activity = insert(:report_activity)
- user = insert(:user, is_moderator: true, is_admin: true)
- {:ok, _} = Notification.create_notifications(report_activity)
-
- assert [%Pleroma.Notification{type: "pleroma:report"}] = Notification.for_user(user)
-
- {:ok, user} = user |> User.admin_api_update(%{is_moderator: false})
- # is still superuser because still admin
- assert [%Pleroma.Notification{type: "pleroma:report"}] = Notification.for_user(user)
-
- {:ok, user} = user |> User.admin_api_update(%{is_moderator: true, is_admin: false})
- # is still superuser because still moderator
- assert [%Pleroma.Notification{type: "pleroma:report"}] = Notification.for_user(user)
-
- {:ok, user} = user |> User.admin_api_update(%{is_moderator: false})
- # is not a superuser any more
- assert [] = Notification.for_user(user)
- end
end
describe "following/followers synchronization" do