Merge pull request #5856 from annando/ap-fixes
AP fixes: LD-signature, wrong owner for completed threads, account removal
This commit is contained in:
commit
9305821b9d
4 changed files with 26 additions and 8 deletions
10
composer.lock
generated
10
composer.lock
generated
|
@ -332,11 +332,11 @@
|
|||
},
|
||||
{
|
||||
"name": "friendica/json-ld",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.friendi.ca/friendica/php-json-ld",
|
||||
"reference": "a9ac64daf01cfd97e80c36a5104247d37c0ae5ef"
|
||||
"reference": "ca3916d10d2ad9073b3b1eae383978dbe828e1e1"
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
|
@ -355,11 +355,11 @@
|
|||
{
|
||||
"name": "Digital Bazaar, Inc.",
|
||||
"email": "support@digitalbazaar.com",
|
||||
"url": "http://digitalbazaar.com/"
|
||||
"homepage": "http://digitalbazaar.com/"
|
||||
},
|
||||
{
|
||||
"name": "Friendica Team",
|
||||
"url": "https://friendi.ca/"
|
||||
"homepage": "https://friendi.ca/"
|
||||
}
|
||||
],
|
||||
"description": "A JSON-LD Processor and API implementation in PHP.",
|
||||
|
@ -372,7 +372,7 @@
|
|||
"Semantic Web",
|
||||
"jsonld"
|
||||
],
|
||||
"time": "2018-09-28T00:01:12+00:00"
|
||||
"time": "2018-10-08T20:41:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fxp/composer-asset-plugin",
|
||||
|
|
|
@ -18,6 +18,9 @@ use Friendica\Protocol\ActivityPub;
|
|||
|
||||
/**
|
||||
* ActivityPub Protocol class
|
||||
*
|
||||
* To-Do:
|
||||
* - Store Diaspora signature
|
||||
*/
|
||||
class Processor
|
||||
{
|
||||
|
@ -194,7 +197,14 @@ class Processor
|
|||
$item['network'] = Protocol::ACTIVITYPUB;
|
||||
$item['private'] = !in_array(0, $activity['receiver']);
|
||||
$item['author-id'] = Contact::getIdForURL($activity['author'], 0, true);
|
||||
$item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
|
||||
|
||||
if (empty($activity['thread-completion'])) {
|
||||
$item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
|
||||
} else {
|
||||
logger('Ignoring actor because of thread completion.', LOGGER_DEBUG);
|
||||
$item['owner-id'] = $item['author-id'];
|
||||
}
|
||||
|
||||
$item['uri'] = $activity['id'];
|
||||
$item['created'] = $activity['published'];
|
||||
$item['edited'] = $activity['updated'];
|
||||
|
@ -261,6 +271,9 @@ class Processor
|
|||
$activity['type'] = 'Create';
|
||||
|
||||
$ldactivity = JsonLD::compact($activity);
|
||||
|
||||
$ldactivity['thread-completion'] = true;
|
||||
|
||||
ActivityPub\Receiver::processActivity($ldactivity);
|
||||
logger('Activity ' . $url . ' had been fetched and processed.');
|
||||
}
|
||||
|
|
|
@ -268,6 +268,11 @@ class Receiver
|
|||
return;
|
||||
}
|
||||
|
||||
// Internal flag for thread completion. See Processor.php
|
||||
if (!empty($activity['thread-completion'])) {
|
||||
$object_data['thread-completion'] = $activity['thread-completion'];
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case 'as:Create':
|
||||
case 'as:Announce':
|
||||
|
|
|
@ -103,9 +103,9 @@ class Notifier
|
|||
|
||||
$inboxes = ActivityPub\Transmitter::fetchTargetInboxesforUser(0);
|
||||
foreach ($inboxes as $inbox) {
|
||||
logger('Account removal for user ' . $uid . ' to ' . $inbox .' via ActivityPub', LOGGER_DEBUG);
|
||||
logger('Account removal for user ' . $item_id . ' to ' . $inbox .' via ActivityPub', LOGGER_DEBUG);
|
||||
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
|
||||
'APDelivery', Delivery::REMOVAL, '', $inbox, $uid);
|
||||
'APDelivery', Delivery::REMOVAL, '', $inbox, $item_id);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue