mirror of
https://git.pleroma.social/sjw/pleroma.git
synced 2024-12-29 02:45:19 +01:00
notifications: fix notification generation for non-create activities
in 300d94c62
, an Object.normalize() call was introduced. calling Object.normalize()
on an activity with a non-object URI (say, a user) causes Really Bad Things to happen.
so don't do that.
This commit is contained in:
parent
ddd04d1c52
commit
6426301407
@ -127,8 +127,7 @@ defmodule Pleroma.Notification do
|
||||
end
|
||||
end
|
||||
|
||||
def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
|
||||
when type in ["Create", "Like", "Announce", "Follow"] do
|
||||
def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do
|
||||
object = Object.normalize(activity)
|
||||
|
||||
unless object && object.data["type"] == "Answer" do
|
||||
@ -140,6 +139,13 @@ defmodule Pleroma.Notification do
|
||||
end
|
||||
end
|
||||
|
||||
def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
|
||||
when type in ["Like", "Announce", "Follow"] do
|
||||
users = get_notified_from_activity(activity)
|
||||
notifications = Enum.map(users, fn user -> create_notification(activity, user) end)
|
||||
{:ok, notifications}
|
||||
end
|
||||
|
||||
def create_notifications(_), do: {:ok, []}
|
||||
|
||||
# TODO move to sql, too.
|
||||
|
Loading…
Reference in New Issue
Block a user