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",
|
"name": "friendica/json-ld",
|
||||||
"version": "1.0.0",
|
"version": "1.1.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.friendi.ca/friendica/php-json-ld",
|
"url": "https://git.friendi.ca/friendica/php-json-ld",
|
||||||
"reference": "a9ac64daf01cfd97e80c36a5104247d37c0ae5ef"
|
"reference": "ca3916d10d2ad9073b3b1eae383978dbe828e1e1"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
|
@ -355,11 +355,11 @@
|
||||||
{
|
{
|
||||||
"name": "Digital Bazaar, Inc.",
|
"name": "Digital Bazaar, Inc.",
|
||||||
"email": "support@digitalbazaar.com",
|
"email": "support@digitalbazaar.com",
|
||||||
"url": "http://digitalbazaar.com/"
|
"homepage": "http://digitalbazaar.com/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Friendica Team",
|
"name": "Friendica Team",
|
||||||
"url": "https://friendi.ca/"
|
"homepage": "https://friendi.ca/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "A JSON-LD Processor and API implementation in PHP.",
|
"description": "A JSON-LD Processor and API implementation in PHP.",
|
||||||
|
@ -372,7 +372,7 @@
|
||||||
"Semantic Web",
|
"Semantic Web",
|
||||||
"jsonld"
|
"jsonld"
|
||||||
],
|
],
|
||||||
"time": "2018-09-28T00:01:12+00:00"
|
"time": "2018-10-08T20:41:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fxp/composer-asset-plugin",
|
"name": "fxp/composer-asset-plugin",
|
||||||
|
|
|
@ -18,6 +18,9 @@ use Friendica\Protocol\ActivityPub;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivityPub Protocol class
|
* ActivityPub Protocol class
|
||||||
|
*
|
||||||
|
* To-Do:
|
||||||
|
* - Store Diaspora signature
|
||||||
*/
|
*/
|
||||||
class Processor
|
class Processor
|
||||||
{
|
{
|
||||||
|
@ -194,7 +197,14 @@ class Processor
|
||||||
$item['network'] = Protocol::ACTIVITYPUB;
|
$item['network'] = Protocol::ACTIVITYPUB;
|
||||||
$item['private'] = !in_array(0, $activity['receiver']);
|
$item['private'] = !in_array(0, $activity['receiver']);
|
||||||
$item['author-id'] = Contact::getIdForURL($activity['author'], 0, true);
|
$item['author-id'] = Contact::getIdForURL($activity['author'], 0, true);
|
||||||
|
|
||||||
|
if (empty($activity['thread-completion'])) {
|
||||||
$item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
|
$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['uri'] = $activity['id'];
|
||||||
$item['created'] = $activity['published'];
|
$item['created'] = $activity['published'];
|
||||||
$item['edited'] = $activity['updated'];
|
$item['edited'] = $activity['updated'];
|
||||||
|
@ -261,6 +271,9 @@ class Processor
|
||||||
$activity['type'] = 'Create';
|
$activity['type'] = 'Create';
|
||||||
|
|
||||||
$ldactivity = JsonLD::compact($activity);
|
$ldactivity = JsonLD::compact($activity);
|
||||||
|
|
||||||
|
$ldactivity['thread-completion'] = true;
|
||||||
|
|
||||||
ActivityPub\Receiver::processActivity($ldactivity);
|
ActivityPub\Receiver::processActivity($ldactivity);
|
||||||
logger('Activity ' . $url . ' had been fetched and processed.');
|
logger('Activity ' . $url . ' had been fetched and processed.');
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,6 +268,11 @@ class Receiver
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Internal flag for thread completion. See Processor.php
|
||||||
|
if (!empty($activity['thread-completion'])) {
|
||||||
|
$object_data['thread-completion'] = $activity['thread-completion'];
|
||||||
|
}
|
||||||
|
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'as:Create':
|
case 'as:Create':
|
||||||
case 'as:Announce':
|
case 'as:Announce':
|
||||||
|
|
|
@ -103,9 +103,9 @@ class Notifier
|
||||||
|
|
||||||
$inboxes = ActivityPub\Transmitter::fetchTargetInboxesforUser(0);
|
$inboxes = ActivityPub\Transmitter::fetchTargetInboxesforUser(0);
|
||||||
foreach ($inboxes as $inbox) {
|
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],
|
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;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue