diff --git a/server/helpers/custom-validators/activitypub/activity.ts b/server/helpers/custom-validators/activitypub/activity.ts index 1d2ef2ac6..381a29e66 100644 --- a/server/helpers/custom-validators/activitypub/activity.ts +++ b/server/helpers/custom-validators/activitypub/activity.ts @@ -16,6 +16,7 @@ import { sanitizeAndCheckVideoTorrentUpdateActivity } from './videos' import { isViewActivityValid } from './view' +import { exists } from '../misc' function isRootActivityValid (activity: any) { return Array.isArray(activity['@context']) && ( @@ -26,6 +27,7 @@ function isRootActivityValid (activity: any) { ) || ( isActivityPubUrlValid(activity.id) && + exists(activity.actor) && (isActivityPubUrlValid(activity.actor) || isActivityPubUrlValid(activity.actor.id)) ) ) diff --git a/server/lib/activitypub/process/process-delete.ts b/server/lib/activitypub/process/process-delete.ts index ff0caa343..3c830abea 100644 --- a/server/lib/activitypub/process/process-delete.ts +++ b/server/lib/activitypub/process/process-delete.ts @@ -15,7 +15,7 @@ async function processDeleteActivity (activity: ActivityDelete) { if (activity.actor === objectUrl) { let actor = await ActorModel.loadByUrl(activity.actor) - if (!actor) return + if (!actor) return undefined if (actor.type === 'Person') { if (!actor.Account) throw new Error('Actor ' + actor.url + ' is a person but we cannot find it in database.') @@ -45,7 +45,7 @@ async function processDeleteActivity (activity: ActivityDelete) { } } - return + return undefined } // ---------------------------------------------------------------------------