diff options
author | William Pitcock <nenolod@dereferenced.org> | 2018-08-06 05:46:37 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2018-08-06 08:22:07 +0000 |
commit | 4807a52284250e1663da0ba31c57a0c05861b797 (patch) | |
tree | c429962ea5b2a36f4652fa55a0e63ef8e34ce290 /lib | |
parent | d7368ea272c86a0b6b22d57d0cb5fb01d502978a (diff) | |
download | pleroma-4807a52284250e1663da0ba31c57a0c05861b797.tar.gz |
user: support creating an actor which represents the instance itself
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 16 |
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}} |