]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/objects/person.rs
Federate Matrix ID (fixes #1438)
[lemmy.git] / crates / apub / src / objects / person.rs
index cc45fd7ed80df14d3c5741ea1561b8e2b75db983..662871dc14ea0a59672ab6a89e37ee3ea5cbdbfa 100644 (file)
@@ -1,5 +1,5 @@
 use crate::{
-  extensions::context::lemmy_context,
+  extensions::{context::lemmy_context, person_extension::PersonExtension},
   objects::{
     check_object_domain,
     get_source_markdown_value,
@@ -16,7 +16,7 @@ use activitystreams::{
   object::{ApObject, Image, Tombstone},
   prelude::*,
 };
-use activitystreams_ext::Ext1;
+use activitystreams_ext::Ext2;
 use anyhow::Context;
 use lemmy_api_structs::blocking;
 use lemmy_db_queries::{ApubObject, DbPool};
@@ -77,7 +77,8 @@ impl ToApub for DbPerson {
         ..Default::default()
       });
 
-    Ok(Ext1::new(ap_actor, self.get_public_key_ext()?))
+    let person_ext = PersonExtension::new(self.matrix_user_id.to_owned())?;
+    Ok(Ext2::new(ap_actor, person_ext, self.get_public_key_ext()?))
   }
   fn to_tombstone(&self) -> Result<Tombstone, LemmyError> {
     unimplemented!()
@@ -192,11 +193,11 @@ impl FromApubToForm<PersonExt> for PersonForm {
       local: Some(false),
       admin: Some(false),
       private_key: None,
-      public_key: Some(Some(person.ext_one.public_key.to_owned().public_key_pem)),
+      public_key: Some(Some(person.ext_two.public_key.to_owned().public_key_pem)),
       last_refreshed_at: Some(naive_now()),
       inbox_url: Some(person.inner.inbox()?.to_owned().into()),
       shared_inbox_url: Some(shared_inbox),
-      matrix_user_id: None, // TODO
+      matrix_user_id: Some(person.ext_one.matrix_user_id.to_owned()),
     })
   }
 }