X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=c25023dc12b1c1b8b9b20e1b3b95fae17ec4aa28;hb=bd853199d93e03fedf43397455939c6d633fa36b;hp=8e40dfc0d846b55ee67dfcc6b8c482060a99a6a7;hpb=60295b58f9ce8937136f6922ca3b7a8aa584d86e;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 8e40dfc0d..c25023dc1 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -148,6 +148,7 @@ defmodule Pleroma.User do field(:last_active_at, :naive_datetime) field(:disclose_client, :boolean, default: true) field(:pinned_objects, :map, default: %{}) + field(:is_suggested, :boolean, default: false) embeds_one( :notification_settings, @@ -1676,6 +1677,22 @@ defmodule Pleroma.User do def confirm(%User{} = user), do: {:ok, user} + def set_suggestion(users, is_suggested) when is_list(users) do + Repo.transaction(fn -> + Enum.map(users, fn user -> + with {:ok, user} <- set_suggestion(user, is_suggested), do: user + end) + end) + end + + def set_suggestion(%User{is_suggested: is_suggested} = user, is_suggested), do: {:ok, user} + + def set_suggestion(%User{} = user, is_suggested) when is_boolean(is_suggested) do + user + |> change(is_suggested: is_suggested) + |> update_and_set_cache() + end + def update_notification_settings(%User{} = user, settings) do user |> cast(%{notification_settings: settings}, [])