Add `also_known_as` field to Pleroma.User
[akkoma] / lib / pleroma / web / activity_pub / activity_pub.ex
index d4dac5dab3bf54cbe361a6f5dd685dac758cda65..dc962673c2c80ae2bc7a7e0c2769a2ebe7fcb56d 100644 (file)
@@ -1102,20 +1102,23 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
     locked = data["manuallyApprovesFollowers"] || false
     data = Transmogrifier.maybe_fix_user_object(data)
     discoverable = data["discoverable"] || false
+    invisible = data["invisible"] || false
 
     user_data = %{
       ap_id: data["id"],
-      banner: banner,
-      discoverable: discoverable,
+      ap_enabled: true,
       source_data: data,
+      banner: banner,
       fields: fields,
       locked: locked,
-      ap_enabled: true,
+      discoverable: discoverable,
+      invisible: invisible,
       avatar: avatar,
       name: data["name"],
       follower_address: data["followers"],
       following_address: data["following"],
-      bio: data["summary"]
+      bio: data["summary"],
+      also_known_as: Map.get(data, "alsoKnownAs", [])
     }
 
     # nickname can be nil because of virtual actors
@@ -1162,7 +1165,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
     with {:enabled, true} <-
            {:enabled, Pleroma.Config.get([:instance, :external_user_synchronization])},
          {:ok, info} <- fetch_follow_information_for_user(data) do
-      info = Map.merge(data.info, info)
+      info = Map.merge(data[:info] || %{}, info)
       Map.put(data, :info, info)
     else
       {:enabled, false} ->