[ActivityPub] Ensuring federation with other software

ActivityPubPlugin:
- Prevent sending a Delete for an Announce

Activitypub_announce:
- Update announce_to_array to add id, to and cc information to the retrieved object

Activitypub_follow:
- Add id to the arguments of follow_to_array, useful for Accept-Follow activities

Activitypub_notice:
- Fix notice validation, url isn't a MUST

Activitypub_inbox_handler:
- Make handle_follow use the received activity id for the later Accept-Follow

Activitypub_postman:
- Fix call to the updated announce_to_array
- Fix successive unnecessary calls to ActivityPubPlugin::actor_uri()
This commit is contained in:
tenma
2019-08-05 23:22:32 +01:00
committed by Diogo Cordeiro
parent 14a45dc546
commit c28cee88b7
6 changed files with 53 additions and 39 deletions

View File

@@ -747,10 +747,12 @@ class ActivityPubPlugin extends Plugin
return true;
}
// The deleting user must have permission to do so, but
// it still doesn't own the notitce, so we just need to
// handle things locally
if (!$notice->isLocal()) {
// We handle things locally either because:
// 1. the deleting user has special permissions to do so,
// but still doesn't own the notice
// 2. the notice is an announce, and there's no undo-share
// logic in GS's AP implementation
if (!$notice->isLocal() || $notice->isRepeat()) {
return true;
}