Allow alsoKnownAs attribute value to be string
This commit is contained in:
parent
8045b9f543
commit
3b470a04f7
3 changed files with 5 additions and 9 deletions
|
@ -110,7 +110,7 @@ pub struct Actor {
|
||||||
pub summary: Option<String>,
|
pub summary: Option<String>,
|
||||||
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub also_known_as: Option<Vec<String>>,
|
pub also_known_as: Option<Value>,
|
||||||
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub attachment: Option<Vec<ActorAttachment>>,
|
pub attachment: Option<Vec<ActorAttachment>>,
|
||||||
|
|
|
@ -43,11 +43,6 @@ async fn create_remote_profile(
|
||||||
if actor_address.is_local(&instance.host()) {
|
if actor_address.is_local(&instance.host()) {
|
||||||
return Err(HandlerError::LocalObject);
|
return Err(HandlerError::LocalObject);
|
||||||
};
|
};
|
||||||
let maybe_also_known_as = actor.also_known_as.as_ref()
|
|
||||||
.and_then(|aliases| aliases.first());
|
|
||||||
if let Some(ref also_known_as) = maybe_also_known_as {
|
|
||||||
log::warn!("actor also known as {}", also_known_as);
|
|
||||||
};
|
|
||||||
let (maybe_avatar, maybe_banner) = fetch_actor_images(
|
let (maybe_avatar, maybe_banner) = fetch_actor_images(
|
||||||
instance,
|
instance,
|
||||||
&actor,
|
&actor,
|
||||||
|
|
|
@ -7,7 +7,7 @@ use crate::activitypub::{
|
||||||
undo_follow::prepare_undo_follow,
|
undo_follow::prepare_undo_follow,
|
||||||
},
|
},
|
||||||
fetcher::helpers::get_or_import_profile_by_actor_id,
|
fetcher::helpers::get_or_import_profile_by_actor_id,
|
||||||
receiver::find_object_id,
|
receiver::{find_object_id, parse_array},
|
||||||
vocabulary::PERSON,
|
vocabulary::PERSON,
|
||||||
};
|
};
|
||||||
use crate::config::Config;
|
use crate::config::Config;
|
||||||
|
@ -53,8 +53,9 @@ pub async fn handle_move_person(
|
||||||
).await?;
|
).await?;
|
||||||
let new_actor = new_profile.actor_json.unwrap();
|
let new_actor = new_profile.actor_json.unwrap();
|
||||||
let maybe_also_known_as = new_actor.also_known_as.as_ref()
|
let maybe_also_known_as = new_actor.also_known_as.as_ref()
|
||||||
.and_then(|aliases| aliases.first());
|
.and_then(|value| parse_array(value).ok())
|
||||||
if maybe_also_known_as != Some(&old_actor.id) {
|
.and_then(|aliases| aliases.first().cloned());
|
||||||
|
if maybe_also_known_as.as_ref() != Some(&old_actor.id) {
|
||||||
return Err(ValidationError("target ID is not an alias").into());
|
return Err(ValidationError("target ID is not an alias").into());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue