diff --git a/app/Util/ActivityPub/Inbox.php b/app/Util/ActivityPub/Inbox.php index fdd39d61b..8cc001f01 100644 --- a/app/Util/ActivityPub/Inbox.php +++ b/app/Util/ActivityPub/Inbox.php @@ -307,11 +307,8 @@ class Inbox $id = $this->payload['object']['id']; switch ($type) { case 'Person': - $profile = Profile::whereNull('domain') - ->whereNull('private_key') - ->whereRemoteUrl($id) - ->first(); - if(!$profile) { + $profile = Helpers::fetchProfile($actor); + if(!$profile || $profile->private_key != null) { return; } Notification::whereActorId($profile->id)->delete(); @@ -326,11 +323,18 @@ class Inbox break; case 'Tombstone': - $status = Status::whereUri($id)->orWhere('object_url', $id)->first(); + $profile = Helpers::fetchProfile($actor); + $status = Status::whereProfileId($profile->id) + ->whereUri($id) + ->orWhereUrl($id) + ->orWhere('object_url', $id) + ->first(); if(!$status) { return; } - $status->media->delete(); + $status->media()->delete(); + $status->likes()->delete(); + $status->shares()->delete(); $status->delete(); return; break;