summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-05-02 12:24:49 +0000
committerrinpatch <rinpatch@sdf.org>2020-05-02 18:59:12 +0300
commitc75840f7b8a117e973713c8cb47523f09deaab79 (patch)
treeb57e316cea93db13e0572b98d533725fa152b363
parent7b0593367756adc459a7b7bbaa0ace567b97742f (diff)
Merge branch 'follow-request-notifications' into 'develop'
Follow request notifications enforcement See merge request pleroma/pleroma!2451
-rw-r--r--config/config.exs2
-rw-r--r--config/description.exs14
-rw-r--r--lib/pleroma/notification.ex11
-rw-r--r--test/notification_test.exs28
4 files changed, 11 insertions, 44 deletions
diff --git a/config/config.exs b/config/config.exs
index 6b881e1b2..3357e23e7 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -581,8 +581,6 @@ config :pleroma, :email_notifications,
inactivity_threshold: 7
}
-config :pleroma, :notifications, enable_follow_request_notifications: false
-
config :pleroma, :oauth2,
token_expires_in: 600,
issue_new_refresh_token: true,
diff --git a/config/description.exs b/config/description.exs
index 19ff55540..5a1e9e9af 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -2288,20 +2288,6 @@ config :pleroma, :config_description, [
},
%{
group: :pleroma,
- key: :notifications,
- type: :group,
- description: "Notification settings",
- children: [
- %{
- key: :enable_follow_request_notifications,
- type: :boolean,
- description:
- "Enables notifications on new follow requests (causes issues with older PleromaFE versions)."
- }
- ]
- },
- %{
- group: :pleroma,
key: Pleroma.Emails.UserEmail,
type: :group,
description: "Email template settings",
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index 94dc0c2b0..815356a5e 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -293,17 +293,8 @@ defmodule Pleroma.Notification do
end
end
- def create_notifications(%Activity{data: %{"type" => "Follow"}} = activity) do
- if Pleroma.Config.get([:notifications, :enable_follow_request_notifications]) ||
- Activity.follow_accepted?(activity) do
- do_create_notifications(activity)
- else
- {:ok, []}
- end
- end
-
def create_notifications(%Activity{data: %{"type" => type}} = activity)
- when type in ["Like", "Announce", "Move", "EmojiReact"] do
+ when type in ["Follow", "Like", "Announce", "Move", "EmojiReact"] do
do_create_notifications(activity)
end
diff --git a/test/notification_test.exs b/test/notification_test.exs
index 8553d9652..e12418db3 100644
--- a/test/notification_test.exs
+++ b/test/notification_test.exs
@@ -312,9 +312,7 @@ defmodule Pleroma.NotificationTest do
})
end
- test "if `follow_request` notifications are enabled, " <>
- "it creates `follow_request` notification for pending Follow activity" do
- clear_config([:notifications, :enable_follow_request_notifications], true)
+ test "it creates `follow_request` notification for pending Follow activity" do
user = insert(:user)
followed_user = insert(:user, locked: true)
@@ -333,21 +331,6 @@ defmodule Pleroma.NotificationTest do
assert %{type: "follow"} = NotificationView.render("show.json", render_opts)
end
- test "if `follow_request` notifications are disabled, " <>
- "it does NOT create `follow*` notification for pending Follow activity" do
- clear_config([:notifications, :enable_follow_request_notifications], false)
- user = insert(:user)
- followed_user = insert(:user, locked: true)
-
- {:ok, _, _, _activity} = CommonAPI.follow(user, followed_user)
- refute FollowingRelationship.following?(user, followed_user)
- assert [] = Notification.for_user(followed_user)
-
- # After request is accepted, no new notifications are generated:
- assert {:ok, _} = CommonAPI.accept_follow_request(user, followed_user)
- assert [] = Notification.for_user(followed_user)
- end
-
test "it doesn't create a notification for follow-unfollow-follow chains" do
user = insert(:user)
followed_user = insert(:user, locked: false)
@@ -362,6 +345,15 @@ defmodule Pleroma.NotificationTest do
notification_id = notification.id
assert [%{id: ^notification_id}] = Notification.for_user(followed_user)
end
+
+ test "dismisses the notification on follow request rejection" do
+ user = insert(:user, locked: true)
+ follower = insert(:user)
+ {:ok, _, _, _follow_activity} = CommonAPI.follow(follower, user)
+ assert [notification] = Notification.for_user(user)
+ {:ok, _follower} = CommonAPI.reject_follow_request(follower, user)
+ assert [] = Notification.for_user(user)
+ end
end
describe "get notification" do