aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-07-16 22:19:17 -0500
committerAlex Gleason <alex@alexgleason.me>2020-07-17 16:17:49 -0500
commitd0eb43b58b0a191b727360cf4523329d2dc60adc (patch)
treef8c2adc32f2f242ea0792295662dacbff8211972 /lib/pleroma/user.ex
parent3a2b2cb6f2d6ce39ae0d246649189c021c535992 (diff)
downloadpleroma-d0eb43b58b0a191b727360cf4523329d2dc60adc.tar.gz
Add account aliases
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r--lib/pleroma/user.ex24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 9240e912d..9b756c9a0 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -89,6 +89,7 @@ defmodule Pleroma.User do
field(:keys, :string)
field(:public_key, :string)
field(:ap_id, :string)
+ field(:ap_aliases, {:array, :string}, default: [])
field(:avatar, :map, default: %{})
field(:local, :boolean, default: true)
field(:follower_address, :string)
@@ -2268,4 +2269,27 @@ defmodule Pleroma.User do
|> Map.put(:bio, HTML.filter_tags(user.bio, filter))
|> Map.put(:fields, fields)
end
+
+ def add_aliases(%User{} = user, aliases) when is_list(aliases) do
+ alias_set =
+ (user.ap_aliases ++ aliases)
+ |> MapSet.new()
+ |> MapSet.to_list()
+
+ user
+ |> change(%{ap_aliases: alias_set})
+ |> Repo.update()
+ end
+
+ def delete_aliases(%User{} = user, aliases) when is_list(aliases) do
+ alias_set =
+ user.ap_aliases
+ |> MapSet.new()
+ |> MapSet.difference(MapSet.new(aliases))
+ |> MapSet.to_list()
+
+ user
+ |> change(%{ap_aliases: alias_set})
+ |> Repo.update()
+ end
end