X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FProtocol.php;h=5ca366e345fa59818daf94d46b6f32b364abcbef;hb=88b3effc180c5477bc8002b9d9ea8f3f628588dd;hp=c141bbc54e6240f2c79372050468e458ab34964c;hpb=cddead23436db38bc1cdb7a0033fb5ab14a53c6e;p=friendica.git diff --git a/src/Core/Protocol.php b/src/Core/Protocol.php index c141bbc54e..5ca366e345 100644 --- a/src/Core/Protocol.php +++ b/src/Core/Protocol.php @@ -1,6 +1,6 @@ Activity::FOLLOW, - 'gravity' => GRAVITY_ACTIVITY, + 'gravity' => Item::GRAVITY_ACTIVITY, 'follow' => $contact['url'], 'body' => '', 'title' => '', @@ -173,15 +174,16 @@ class Protocol * Sends an unfollow message. Does not remove the contact * * @param array $contact Target public contact (uid = 0) array - * @param array $user Source local user array + * @param array $owner Source owner-view record * @return bool|null true if successful, false if not, null if no remote action was performed * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function unfollow(array $contact, array $user): ?bool + public static function unfollow(array $contact, array $owner): ?bool { if (empty($contact['network'])) { - throw new \InvalidArgumentException('Missing network key in contact array'); + Logger::notice('Contact has got no network, we quit here', ['id' => $contact['id']]); + return null; } $protocol = $contact['network']; @@ -191,31 +193,34 @@ class Protocol if (in_array($protocol, [Protocol::OSTATUS, Protocol::DFRN])) { // create an unfollow slap - $item = []; - $item['verb'] = Activity::O_UNFOLLOW; - $item['gravity'] = GRAVITY_ACTIVITY; - $item['follow'] = $contact['url']; - $item['body'] = ''; - $item['title'] = ''; - $item['guid'] = ''; - $item['uri-id'] = 0; - $slap = OStatus::salmon($item, $user); + $item = [ + 'verb' => Activity::O_UNFOLLOW, + 'gravity' => Item::GRAVITY_ACTIVITY, + 'follow' => $contact['url'], + 'body' => '', + 'title' => '', + 'guid' => '', + 'uri-id' => 0, + ]; + + $slap = OStatus::salmon($item, $owner); if (empty($contact['notify'])) { - throw new \InvalidArgumentException('Missing expected "notify" key in OStatus/DFRN contact'); + Logger::notice('OStatus/DFRN Contact is missing notify, we quit here', ['id' => $contact['id']]); + return null; } - return Salmon::slapper($user, $contact['notify'], $slap) === 0; + return Salmon::slapper($owner, $contact['notify'], $slap) === 0; } elseif ($protocol == Protocol::DIASPORA) { - return Diaspora::sendUnshare($user, $contact) > 0; + return Diaspora::sendUnshare($owner, $contact) > 0; } elseif ($protocol == Protocol::ACTIVITYPUB) { - return ActivityPub\Transmitter::sendContactUndo($contact['url'], $contact['id'], $user['uid']); + return ActivityPub\Transmitter::sendContactUndo($contact['url'], $contact['id'], $owner); } // Catch-all hook for connector addons $hook_data = [ 'contact' => $contact, - 'uid' => $user['uid'], + 'uid' => $owner['uid'], 'result' => null, ]; Hook::callAll('unfollow', $hook_data); @@ -227,12 +232,12 @@ class Protocol * Revoke an incoming follow from the provided contact * * @param array $contact Target public contact (uid == 0) array - * @param int $uid Source local user id + * @param array $owner Source owner-view record * @return bool|null true if successful, false if not, null if no action was performed * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function revokeFollow(array $contact, int $uid): ?bool + public static function revokeFollow(array $contact, array $owner): ?bool { if (empty($contact['network'])) { throw new \InvalidArgumentException('Missing network key in contact array'); @@ -244,13 +249,13 @@ class Protocol } if ($protocol == Protocol::ACTIVITYPUB) { - return ActivityPub\Transmitter::sendContactReject($contact['url'], $contact['hub-verify'], $uid); + return ActivityPub\Transmitter::sendContactReject($contact['url'], $contact['hub-verify'], $owner); } // Catch-all hook for connector addons $hook_data = [ 'contact' => $contact, - 'uid' => $uid, + 'uid' => $owner['uid'], 'result' => null, ]; Hook::callAll('revoke_follow', $hook_data);