1 defmodule Pleroma.Web.ActivityPub.UserView do
3 alias Pleroma.Web.Salmon
6 def render("user.json", %{user: user}) do
7 {:ok, _, public_key} = Salmon.keys_from_pem(user.info["keys"])
8 public_key = :public_key.pem_entry_encode(:RSAPublicKey, public_key)
9 public_key = :public_key.pem_encode([public_key])
12 "https://www.w3.org/ns/activitystreams",
13 "https://w3id.org/security/v1",
15 "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
16 "sensitive": "as:sensitive",
17 "Hashtag": "as:Hashtag",
18 "ostatus": "http://ostatus.org#",
19 "atomUri": "ostatus:atomUri",
20 "inReplyToAtomUri": "ostatus:inReplyToAtomUri",
21 "conversation": "ostatus:conversation",
22 "toot": "http://joinmastodon.org/ns#",
28 "following": "#{user.ap_id}/following",
29 "followers": "#{user.ap_id}/followers",
30 "inbox": "#{user.ap_id}/inbox",
31 "outbox": "#{user.ap_id}/outbox",
32 "preferredUsername": user.nickname,
36 "manuallyApprovesFollowers": false,
38 "id": "#{user.ap_id}#main-key",
40 "publicKeyPem": public_key
43 "sharedInbox": "#{Pleroma.Web.Endpoint.url}/inbox"
47 "url": User.avatar_url(user)