projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '963_oob_oauth_redirect_fix' into 'develop'
[akkoma]
/
lib
/
pleroma
/
user
/
info.ex
diff --git
a/lib/pleroma/user/info.ex
b/lib/pleroma/user/info.ex
index 07825a1c4bc1ec5362c634014f1211c4abaf952a..08e43ff0fb9129e90cf1eceb7a6616207e3a5d1b 100644
(file)
--- a/
lib/pleroma/user/info.ex
+++ b/
lib/pleroma/user/info.ex
@@
-8,6
+8,8
@@
defmodule Pleroma.User.Info do
alias Pleroma.User.Info
alias Pleroma.User.Info
+ @type t :: %__MODULE__{}
+
embedded_schema do
field(:banner, :map, default: %{})
field(:background, :map, default: %{})
embedded_schema do
field(:banner, :map, default: %{})
field(:background, :map, default: %{})
@@
-38,14
+40,23
@@
defmodule Pleroma.User.Info do
field(:salmon, :string, default: nil)
field(:hide_followers, :boolean, default: false)
field(:hide_follows, :boolean, default: false)
field(:salmon, :string, default: nil)
field(:hide_followers, :boolean, default: false)
field(:hide_follows, :boolean, default: false)
+ field(:hide_favorites, :boolean, default: true)
field(:pinned_activities, {:array, :string}, default: [])
field(:pinned_activities, {:array, :string}, default: [])
- field(:flavour, :string, default: nil)
- field(:disabled, :boolean, default: false)
+ field(:mascot, :map, default: nil)
+ field(:emoji, {:array, :map}, default: [])
+ field(:pleroma_settings_store, :map, default: %{})
field(:notification_settings, :map,
field(:notification_settings, :map,
- default: %{"remote" => true, "local" => true, "followers" => true, "follows" => true}
+ default: %{
+ "followers" => true,
+ "follows" => true,
+ "non_follows" => true,
+ "non_followers" => true
+ }
)
)
+ field(:skip_thread_containment, :boolean, default: false)
+
# Found in the wild
# ap_id -> Where is this used?
# bio -> Where is this used?
# Found in the wild
# ap_id -> Where is this used?
# bio -> Where is this used?
@@
-64,10
+75,15
@@
defmodule Pleroma.User.Info do
end
def update_notification_settings(info, settings) do
end
def update_notification_settings(info, settings) do
+ settings =
+ settings
+ |> Enum.map(fn {k, v} -> {k, v in [true, "true", "True", "1"]} end)
+ |> Map.new()
+
notification_settings =
info.notification_settings
|> Map.merge(settings)
notification_settings =
info.notification_settings
|> Map.merge(settings)
- |> Map.take(["
remote", "local", "followers", "follow
s"])
+ |> Map.take(["
followers", "follows", "non_follows", "non_follower
s"])
params = %{notification_settings: notification_settings}
params = %{notification_settings: notification_settings}
@@
-76,14
+92,6
@@
defmodule Pleroma.User.Info do
|> validate_required([:notification_settings])
end
|> validate_required([:notification_settings])
end
- def set_disabled_status(info, disabled) do
- params = %{disabled: disabled}
-
- info
- |> cast(params, [:disabled])
- |> validate_required([:disabled])
- end
-
def add_to_note_count(info, number) do
set_note_count(info, info.note_count + number)
end
def add_to_note_count(info, number) do
set_note_count(info, info.note_count + number)
end
@@
-211,37
+219,34
@@
defmodule Pleroma.User.Info do
:banner,
:hide_follows,
:hide_followers,
:banner,
:hide_follows,
:hide_followers,
+ :hide_favorites,
:background,
:background,
- :show_role
+ :show_role,
+ :skip_thread_containment,
+ :pleroma_settings_store
])
end
])
end
- def confirmation_changeset(info, :confirmed) do
- confirmation_changeset(info, %{
- confirmation_pending: false,
- confirmation_token: nil
- })
- end
+ @spec confirmation_changeset(Info.t(), keyword()) :: Changeset.t()
+ def confirmation_changeset(info, opts) do
+ need_confirmation? = Keyword.get(opts, :need_confirmation)
- def confirmation_changeset(info, :unconfirmed) do
- confirmation_changeset(info, %{
- confirmation_pending: true,
- confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
- })
- end
+ params =
+ if need_confirmation? do
+ %{
+ confirmation_pending: true,
+ confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
+ }
+ else
+ %{
+ confirmation_pending: false,
+ confirmation_token: nil
+ }
+ end
- def confirmation_changeset(info, params) do
cast(info, params, [:confirmation_pending, :confirmation_token])
end
cast(info, params, [:confirmation_pending, :confirmation_token])
end
- def mastodon_profile_update(info, params) do
- info
- |> cast(params, [
- :locked,
- :banner
- ])
- end
-
def mastodon_settings_update(info, settings) do
params = %{settings: settings}
def mastodon_settings_update(info, settings) do
params = %{settings: settings}
@@
-250,12
+255,12
@@
defmodule Pleroma.User.Info do
|> validate_required([:settings])
end
|> validate_required([:settings])
end
- def mas
todon_flavour_update(info, flavour
) do
- params = %{
flavour: flavour
}
+ def mas
cot_update(info, url
) do
+ params = %{
mascot: url
}
info
info
- |> cast(params, [:
flavour
])
- |> validate_required([:
flavour
])
+ |> cast(params, [:
mascot
])
+ |> validate_required([:
mascot
])
end
def set_source_data(info, source_data) do
end
def set_source_data(info, source_data) do