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.ex15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 09ea80793..8115fb0fa 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1770,7 +1770,7 @@ defmodule Pleroma.User do
def fetch_by_ap_id(ap_id, opts \\ []), do: ActivityPub.make_user_from_ap_id(ap_id, opts)
- def get_or_fetch_by_ap_id(ap_id, opts \\ []) do
+ def get_or_fetch_by_ap_id(ap_id, opts \\ []) when is_binary(ap_id) do
cached_user = get_cached_by_ap_id(ap_id)
maybe_fetched_user = needs_update?(cached_user) && fetch_by_ap_id(ap_id, opts)
@@ -1787,6 +1787,13 @@ defmodule Pleroma.User do
end
end
+ def get_or_fetch_by_ap_id!(ap_id, opts \\ []) when is_binary(ap_id) do
+ case get_or_fetch_by_ap_id(ap_id, opts) do
+ {:ok, user} -> user
+ _ -> nil
+ end
+ end
+
@doc """
Creates an internal service actor by URI if missing.
Optionally takes nickname for addressing.
@@ -2097,9 +2104,9 @@ defmodule Pleroma.User do
}
end
- def ensure_keys_present(%{keys: keys} = user) when not is_nil(keys), do: {:ok, user}
+ def ensure_keys_present(%User{keys: keys} = user) when not is_nil(keys), do: {:ok, user}
- def ensure_keys_present(%User{} = user) do
+ def ensure_keys_present(%User{local: true} = user) do
with {:ok, pem} <- Keys.generate_rsa_pem() do
user
|> cast(%{keys: pem}, [:keys])
@@ -2108,6 +2115,8 @@ defmodule Pleroma.User do
end
end
+ def ensure_keys_present(%User{local: false}), do: {:error, :none}
+
def get_ap_ids_by_nicknames(nicknames) do
from(u in User,
where: u.nickname in ^nicknames,