updated plugin ActivityPub
version 5.8.0
This commit is contained in:
@ -12,6 +12,8 @@ use Activitypub\Http;
|
||||
use Activitypub\Collection\Followers;
|
||||
use Activitypub\Collection\Interactions;
|
||||
|
||||
use function Activitypub\object_to_uri;
|
||||
|
||||
/**
|
||||
* Handles Delete requests.
|
||||
*/
|
||||
@ -20,24 +22,10 @@ class Delete {
|
||||
* Initialize the class, registering WordPress hooks.
|
||||
*/
|
||||
public static function init() {
|
||||
\add_action(
|
||||
'activitypub_inbox_delete',
|
||||
array( self::class, 'handle_delete' )
|
||||
);
|
||||
|
||||
// Defer signature verification for `Delete` requests.
|
||||
\add_filter(
|
||||
'activitypub_defer_signature_verification',
|
||||
array( self::class, 'defer_signature_verification' ),
|
||||
10,
|
||||
2
|
||||
);
|
||||
|
||||
// Side effect.
|
||||
\add_action(
|
||||
'activitypub_delete_actor_interactions',
|
||||
array( self::class, 'delete_interactions' )
|
||||
);
|
||||
\add_action( 'activitypub_inbox_delete', array( self::class, 'handle_delete' ) );
|
||||
\add_filter( 'activitypub_defer_signature_verification', array( self::class, 'defer_signature_verification' ), 10, 2 );
|
||||
\add_action( 'activitypub_delete_actor_interactions', array( self::class, 'delete_interactions' ) );
|
||||
\add_filter( 'activitypub_get_outbox_activity', array( self::class, 'outbox_activity' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,6 +102,7 @@ class Delete {
|
||||
* @param array $activity The delete activity.
|
||||
*/
|
||||
public static function maybe_delete_follower( $activity ) {
|
||||
/* @var \Activitypub\Model\Follower $follower Follower object. */
|
||||
$follower = Followers::get_follower_by_actor( $activity['actor'] );
|
||||
|
||||
// Verify that Actor is deleted.
|
||||
@ -142,15 +131,13 @@ class Delete {
|
||||
/**
|
||||
* Delete comments from an Actor.
|
||||
*
|
||||
* @param array $actor The actor whose comments to delete.
|
||||
* @param string $actor The URL of the actor whose comments to delete.
|
||||
*/
|
||||
public static function delete_interactions( $actor ) {
|
||||
$comments = Interactions::get_interactions_by_actor( $actor );
|
||||
|
||||
if ( is_array( $comments ) ) {
|
||||
foreach ( $comments as $comment ) {
|
||||
wp_delete_comment( $comment->comment_ID );
|
||||
}
|
||||
foreach ( $comments as $comment ) {
|
||||
wp_delete_comment( $comment, true );
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,4 +179,18 @@ class Delete {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the object to the object ID.
|
||||
*
|
||||
* @param \Activitypub\Activity\Activity $activity The Activity object.
|
||||
* @return \Activitypub\Activity\Activity The filtered Activity object.
|
||||
*/
|
||||
public static function outbox_activity( $activity ) {
|
||||
if ( 'Delete' === $activity->get_type() ) {
|
||||
$activity->set_object( object_to_uri( $activity->get_object() ) );
|
||||
}
|
||||
|
||||
return $activity;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user