diff options
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 22 |
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}") |