diff options
author | lain <lain@soykaf.club> | 2023-02-09 19:54:59 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2023-02-09 19:54:59 +0000 |
commit | 7abb248cebaa10edfad34f304eb929d654956a54 (patch) | |
tree | 6b133f606a83ebe4c41dac6c34dc704f5144c89f | |
parent | 00b39dea5d33a4595af1b63148b39c2bf335d4bc (diff) | |
parent | 55a8aa978782b9f2ee34c21404a98af833451380 (diff) | |
download | pleroma-7abb248cebaa10edfad34f304eb929d654956a54.tar.gz pleroma-7abb248cebaa10edfad34f304eb929d654956a54.zip |
Merge branch 'notification-content-filtering-noobj' into 'develop'
Require related object for content-filtering on notification
See merge request pleroma/pleroma!3837
-rw-r--r-- | lib/pleroma/notification.ex | 1 | ||||
-rw-r--r-- | test/pleroma/notification_test.exs | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 60c1a80ba..48d467c59 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -178,6 +178,7 @@ defmodule Pleroma.Notification do from([_n, a, o] in query, where: fragment("not(?->>'content' ~* ?)", o.data, ^regex) or + fragment("?->>'content' is null", o.data) or fragment("?->>'actor' = ?", o.data, ^user.ap_id) ) end diff --git a/test/pleroma/notification_test.exs b/test/pleroma/notification_test.exs index d169ab709..e55aa3a08 100644 --- a/test/pleroma/notification_test.exs +++ b/test/pleroma/notification_test.exs @@ -1251,5 +1251,32 @@ defmodule Pleroma.NotificationTest do assert length(Notification.for_user(user)) == 1 end + + test "it returns notifications when related object is without content and filters are defined", + %{user: user} do + followed_user = insert(:user, is_locked: true) + + insert(:filter, user: followed_user, phrase: "test", hide: true) + + {:ok, _, _, _activity} = CommonAPI.follow(user, followed_user) + refute FollowingRelationship.following?(user, followed_user) + assert [notification] = Notification.for_user(followed_user) + + assert %{type: "follow_request"} = + NotificationView.render("show.json", %{ + notification: notification, + for: followed_user + }) + + assert {:ok, _} = CommonAPI.accept_follow_request(user, followed_user) + + assert [notification] = Notification.for_user(followed_user) + + assert %{type: "follow"} = + NotificationView.render("show.json", %{ + notification: notification, + for: followed_user + }) + end end end |