From 62fe70f20b41094ac0865ee0d29a957b23019fc4 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 19 Nov 2024 15:09:43 -0500 Subject: [PATCH] feat: #12924, custom user fields for local users now federating out --- src/activitypub/mocks.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/activitypub/mocks.js b/src/activitypub/mocks.js index 0bcc83fe36..f1817a3f3a 100644 --- a/src/activitypub/mocks.js +++ b/src/activitypub/mocks.js @@ -17,6 +17,8 @@ const slugify = require('../slugify'); const translator = require('../translator'); const utils = require('../utils'); +const accountHelpers = require('../controllers/accounts/helpers'); + const activitypub = module.parent.exports; const Mocks = module.exports; @@ -160,7 +162,9 @@ Mocks.post = async (objects) => { Mocks.actors = {}; Mocks.actors.user = async (uid) => { - let { username, userslug, displayname, fullname, joindate, aboutme, picture, 'cover:url': cover } = await user.getUserData(uid); + const userData = await user.getUserData(uid); + let { username, userslug, displayname, fullname, joindate, aboutme, picture, 'cover:url': cover } = userData; + const fields = await accountHelpers.getCustomUserFields(userData); const publicKey = await activitypub.getPublicKey('uid', uid); let aboutmeParsed = ''; @@ -188,6 +192,17 @@ Mocks.actors.user = async (uid) => { }; } + const attachment = []; + if (fields.length) { + fields.forEach(({ name, value }) => { + attachment.push({ + type: 'PropertyValue', + name, + value, + }); + }); + } + return { '@context': [ 'https://www.w3.org/ns/activitystreams', @@ -207,6 +222,7 @@ Mocks.actors.user = async (uid) => { icon: picture, image: cover, published: new Date(joindate).toISOString(), + attachment, publicKey: { id: `${nconf.get('url')}/uid/${uid}#key`,