"inbox": "https://enterprise.lemmy.ml/c/tenforward/inbox",
"followers": "https://enterprise.lemmy.ml/c/tenforward/followers",
"moderators": "https://enterprise.lemmy.ml/c/tenforward/moderators",
+ "attributedTo": "https://enterprise.lemmy.ml/c/tenforward/moderators",
"postingRestrictedToMods": false,
"endpoints": {
"sharedInbox": "https://enterprise.lemmy.ml/inbox"
let community_id = self.id;
let langs = CommunityLanguage::read(data.pool(), community_id).await?;
let language = LanguageTag::new_multiple(langs, data.pool()).await?;
+ let attributed_to = Some(ObjectId::<ApubCommunityModerators>::new(
+ generate_moderators_url(&self.actor_id)?,
+ ));
let group = Group {
kind: GroupType::Group,
icon: self.icon.clone().map(ImageObject::new),
image: self.banner.clone().map(ImageObject::new),
sensitive: Some(self.nsfw),
- moderators: Some(ObjectId::<ApubCommunityModerators>::new(
- generate_moderators_url(&self.actor_id)?,
- )),
+ moderators: attributed_to.clone(),
inbox: self.inbox_url.clone().into(),
outbox: ObjectId::new(generate_outbox_url(&self.actor_id)?),
followers: self.followers_url.clone().into(),
published: Some(convert_datetime(self.published)),
updated: self.updated.map(convert_datetime),
posting_restricted_to_mods: Some(self.posting_restricted_to_mods),
+ attributed_to,
};
Ok(group)
}
.map_err(|e| debug!("{}", e))
.ok();
- if let Some(moderators) = &group.moderators {
+ if let Some(moderators) = group.attributed_to.or(group.moderators) {
moderators
.dereference(&outbox_data, local_instance(context).await, request_counter)
.await
let mut json: Group = file_to_json_object("assets/lemmy/objects/group.json").unwrap();
// change these links so they dont fetch over the network
json.moderators = None;
+ json.attributed_to = None;
json.outbox =
ObjectId::new(Url::parse("https://enterprise.lemmy.ml/c/tenforward/not_outbox").unwrap());
pub(crate) image: Option<ImageObject>,
// lemmy extension
pub(crate) sensitive: Option<bool>,
- // lemmy extension
+ // deprecated, use attributed_to instead
pub(crate) moderators: Option<ObjectId<ApubCommunityModerators>>,
+ #[serde(deserialize_with = "deserialize_skip_error", default)]
+ pub(crate) attributed_to: Option<ObjectId<ApubCommunityModerators>>,
// lemmy extension
pub(crate) posting_restricted_to_mods: Option<bool>,
pub(crate) outbox: ObjectId<ApubCommunityOutbox>,