aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2018-08-06 05:46:37 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2018-08-06 08:22:07 +0000
commit4807a52284250e1663da0ba31c57a0c05861b797 (patch)
treec429962ea5b2a36f4652fa55a0e63ef8e34ce290
parentd7368ea272c86a0b6b22d57d0cb5fb01d502978a (diff)
downloadpleroma-4807a52284250e1663da0ba31c57a0c05861b797.tar.gz
user: support creating an actor which represents the instance itself
-rw-r--r--lib/pleroma/user.ex16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index df22d29a8..640c34aec 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -637,6 +637,22 @@ defmodule Pleroma.User do
end
end
+ def get_or_create_instance_user do
+ if user = get_by_ap_id(Pleroma.Web.Endpoint.url()) do
+ user
+ else
+ changes =
+ %User{}
+ |> cast(%{}, [:ap_id, :nickname, :local])
+ |> put_change(:ap_id, Pleroma.Web.Endpoint.url())
+ |> put_change(:nickname, nil)
+ |> put_change(:local, true)
+
+ {:ok, user} = Repo.insert(changes)
+ user
+ end
+ end
+
# AP style
def public_key_from_info(%{
"source_data" => %{"publicKey" => %{"publicKeyPem" => public_key_pem}}