Merge pull request #6067 from annando/ap-relocation
Preparations for a relocation message / fix for notice
This commit is contained in:
commit
0a9dba005c
4 changed files with 44 additions and 12 deletions
|
@ -106,6 +106,10 @@ class APContact extends BaseObject
|
|||
|
||||
$compacted = JsonLD::compact($data);
|
||||
|
||||
if (empty($compacted['@id'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$apcontact = [];
|
||||
$apcontact['url'] = $compacted['@id'];
|
||||
$apcontact['uuid'] = JsonLD::fetchElement($compacted, 'diaspora:guid');
|
||||
|
|
|
@ -40,6 +40,7 @@ class ActivityPub
|
|||
const PUBLIC_COLLECTION = 'https://www.w3.org/ns/activitystreams#Public';
|
||||
const CONTEXT = ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1',
|
||||
['vcard' => 'http://www.w3.org/2006/vcard/ns#',
|
||||
'dfrn' => 'http://purl.org/macgirvin/dfrn/1.0/',
|
||||
'diaspora' => 'https://diasporafoundation.org/ns/',
|
||||
'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
|
||||
'sensitive' => 'as:sensitive', 'Hashtag' => 'as:Hashtag']];
|
||||
|
|
|
@ -1000,11 +1000,10 @@ class Transmitter
|
|||
public static function sendContactSuggestion($uid, $inbox, $suggestion_id)
|
||||
{
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
$profile = APContact::getByURL($owner['url']);
|
||||
|
||||
$suggestion = DBA::selectFirst('fsuggest', ['url', 'note', 'created'], ['id' => $suggestion_id]);
|
||||
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'Announce',
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1020,6 +1019,34 @@ class Transmitter
|
|||
return HTTPSignature::transmit($signed, $inbox, $uid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transmits a profile relocation to a given inbox
|
||||
*
|
||||
* @param integer $uid User ID
|
||||
* @param string $inbox Target inbox
|
||||
*
|
||||
* @return boolean was the transmission successful?
|
||||
*/
|
||||
public static function sendProfileRelocation($uid, $inbox)
|
||||
{
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'dfrn:relocate',
|
||||
'actor' => $owner['url'],
|
||||
'object' => $owner['url'],
|
||||
'published' => DateTimeFormat::utcNow(DateTimeFormat::ATOM),
|
||||
'instrument' => ['type' => 'Service', 'name' => BaseObject::getApp()->getUserAgent()],
|
||||
'to' => [ActivityPub::PUBLIC_COLLECTION],
|
||||
'cc' => []];
|
||||
|
||||
$signed = LDSignature::sign($data, $owner);
|
||||
|
||||
Logger::log('Deliver profile relocation for user ' . $uid . ' to ' . $inbox . ' via ActivityPub', Logger::DEBUG);
|
||||
return HTTPSignature::transmit($signed, $inbox, $uid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transmits a profile deletion to a given inbox
|
||||
*
|
||||
|
@ -1031,9 +1058,8 @@ class Transmitter
|
|||
public static function sendProfileDeletion($uid, $inbox)
|
||||
{
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
$profile = APContact::getByURL($owner['url']);
|
||||
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'Delete',
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1062,7 +1088,7 @@ class Transmitter
|
|||
$owner = User::getOwnerDataById($uid);
|
||||
$profile = APContact::getByURL($owner['url']);
|
||||
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'Update',
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1091,7 +1117,7 @@ class Transmitter
|
|||
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => $activity,
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1117,7 +1143,7 @@ class Transmitter
|
|||
$profile = APContact::getByURL($target);
|
||||
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'Accept',
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1145,7 +1171,7 @@ class Transmitter
|
|||
$profile = APContact::getByURL($target);
|
||||
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => System::baseUrl() . '/activity/' . System::createGUID(),
|
||||
'type' => 'Reject',
|
||||
'actor' => $owner['url'],
|
||||
|
@ -1174,7 +1200,7 @@ class Transmitter
|
|||
$id = System::baseUrl() . '/activity/' . System::createGUID();
|
||||
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
$data = ['@context' => 'https://www.w3.org/ns/activitystreams',
|
||||
$data = ['@context' => ActivityPub::CONTEXT,
|
||||
'id' => $id,
|
||||
'type' => 'Undo',
|
||||
'actor' => $owner['url'],
|
||||
|
|
|
@ -85,11 +85,12 @@ class JsonLD
|
|||
|
||||
$context = (object)['as' => 'https://www.w3.org/ns/activitystreams#',
|
||||
'w3id' => 'https://w3id.org/security#',
|
||||
'ldp' => (object)['@id' => 'http://www.w3.org/ns/ldp#', '@type' => '@id'],
|
||||
'vcard' => (object)['@id' => 'http://www.w3.org/2006/vcard/ns#', '@type' => '@id'],
|
||||
'ostatus' => (object)['@id' => 'http://ostatus.org#', '@type' => '@id'],
|
||||
'dfrn' => (object)['@id' => 'http://purl.org/macgirvin/dfrn/1.0/', '@type' => '@id'],
|
||||
'diaspora' => (object)['@id' => 'https://diasporafoundation.org/ns/', '@type' => '@id'],
|
||||
'dc' => (object)['@id' => 'http://purl.org/dc/terms/', '@type' => '@id'],
|
||||
'ldp' => (object)['@id' => 'http://www.w3.org/ns/ldp#', '@type' => '@id']];
|
||||
'ostatus' => (object)['@id' => 'http://ostatus.org#', '@type' => '@id'],
|
||||
'dc' => (object)['@id' => 'http://purl.org/dc/terms/', '@type' => '@id']];
|
||||
|
||||
$jsonobj = json_decode(json_encode($json, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
|
||||
|
||||
|
|
Loading…
Reference in a new issue