X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Fobjects%2Fperson.rs;h=2c238fb56c309d4c23accaa81633e06f4190fae6;hb=3471f3533cb724b2cf6953d563aadfcc9f66c1d2;hp=d28f8c7cf335982d07b74753ea447c9c06eed703;hpb=2de994797e4fe8f569c903de35da55ccdf823fb8;p=lemmy.git diff --git a/crates/apub/src/objects/person.rs b/crates/apub/src/objects/person.rs index d28f8c7c..2c238fb5 100644 --- a/crates/apub/src/objects/person.rs +++ b/crates/apub/src/objects/person.rs @@ -19,7 +19,7 @@ use activitypub_federation::{ use chrono::NaiveDateTime; use lemmy_api_common::{ context::LemmyContext, - utils::{generate_outbox_url, local_site_opt_to_slur_regex}, + utils::{generate_outbox_url, local_site_opt_to_slur_regex, sanitize_html, sanitize_html_opt}, }; use lemmy_db_schema::{ source::person::{Person as DbPerson, PersonInsertForm, PersonUpdateForm}, @@ -138,12 +138,17 @@ impl Object for ApubPerson { ) -> Result { let instance_id = fetch_instance_actor_for_object(&person.id, context).await?; + let name = sanitize_html(&person.preferred_username); + let display_name = sanitize_html_opt(&person.name); + let bio = read_from_string_or_source_opt(&person.summary, &None, &person.source); + let bio = sanitize_html_opt(&bio); + // Some Mastodon users have `name: ""` (empty string), need to convert that to `None` // https://github.com/mastodon/mastodon/issues/25233 - let display_name = person.name.filter(|n| !n.is_empty()); + let display_name = display_name.filter(|n| !n.is_empty()); let person_form = PersonInsertForm { - name: person.preferred_username, + name, display_name, banned: None, ban_expires: None, @@ -153,7 +158,7 @@ impl Object for ApubPerson { published: person.published.map(|u| u.naive_local()), updated: person.updated.map(|u| u.naive_local()), actor_id: Some(person.id.into()), - bio: read_from_string_or_source_opt(&person.summary, &None, &person.source), + bio, local: Some(false), admin: Some(false), bot_account: Some(person.kind == UserTypes::Service),