aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r--lib/pleroma/user.ex22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index b78777141..c5ea1ba10 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -131,7 +131,11 @@ defmodule Pleroma.User do
field(:hide_followers, :boolean, default: false)
field(:hide_follows, :boolean, default: false)
field(:hide_favorites, :boolean, default: true)
- field(:email_notifications, :map, default: %{"digest" => false})
+
+ field(:email_notifications, :map,
+ default: %{"digest" => false, "notifications" => ["mention", "pleroma:chat_mention"]}
+ )
+
field(:mascot, :map, default: nil)
field(:emoji, :map, default: %{})
field(:pleroma_settings_store, :map, default: %{})
@@ -525,7 +529,8 @@ defmodule Pleroma.User do
:is_discoverable,
:actor_type,
:accepts_chat_messages,
- :disclose_client
+ :disclose_client,
+ :email_notifications
]
)
|> unique_constraint(:nickname)
@@ -2390,17 +2395,14 @@ defmodule Pleroma.User do
|> update_and_set_cache()
end
+ @spec update_email_notifications(t(), map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
def update_email_notifications(user, settings) do
- email_notifications =
- user.email_notifications
- |> Map.merge(settings)
- |> Map.take(["digest"])
+ email_notifications = Map.merge(user.email_notifications, settings)
- params = %{email_notifications: email_notifications}
fields = [:email_notifications]
user
- |> cast(params, fields)
+ |> cast(%{email_notifications: email_notifications}, fields)
|> validate_required(fields)
|> update_and_set_cache()
end
@@ -2431,8 +2433,8 @@ defmodule Pleroma.User do
end
end
- @spec add_to_block(User.t(), User.t()) ::
- {:ok, UserRelationship.t()} | {:ok, nil} | {:error, Ecto.Changeset.t()}
+ @spec remove_from_block(User.t(), User.t()) ::
+ {:ok, UserRelationship.t() | nil} | {:error, Ecto.Changeset.t()}
defp remove_from_block(%User{} = user, %User{} = blocked) do
with {:ok, relationship} <- UserRelationship.delete_block(user, blocked) do
@cachex.del(:user_cache, "blocked_users_ap_ids:#{user.ap_id}")