diff --git a/src/models/user.ts b/src/models/user.ts index c389f477ab..f0620a6cfd 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -48,6 +48,8 @@ type IUserBase = { usernameLower: string; avatarId: mongo.ObjectID; bannerId: mongo.ObjectID; + avatarUrl?: string; + bannerUrl?: string; wallpaperId: mongo.ObjectID; data: any; description: string; diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index 3bc04b8cbe..96e73406b2 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -118,19 +118,33 @@ export async function createPerson(value: any, resolver?: Resolver): Promise([ person.icon, person.image ].map(img => img == null ? Promise.resolve(null) : resolveImage(user, img) - ))).map(file => file != null ? file._id : null); + ))); - User.update({ _id: user._id }, { $set: { avatarId, bannerId } }); + const avatarId = avatar ? avatar._id : null; + const bannerId = banner ? banner._id : null; + const avatarUrl = avatar && avatar.metadata.isMetaOnly ? avatar.metadata.url : null; + const bannerUrl = banner && banner.metadata.isMetaOnly ? banner.metadata.url : null; + + await User.update({ _id: user._id }, { + $set: { + avatarId, + bannerId, + avatarUrl, + bannerUrl + } + }); user.avatarId = avatarId; user.bannerId = bannerId; + user.avatarUrl = avatarUrl; + user.bannerUrl = bannerUrl; //#endregion return user;