]> git.mxchange.org Git - friendica.git/commitdiff
Ensure that pokes are always send only via DFRN
authorMichael <heluecht@pirati.ca>
Thu, 6 Jun 2019 04:26:02 +0000 (04:26 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 6 Jun 2019 04:26:02 +0000 (04:26 +0000)
mod/item.php
src/Model/Item.php
src/Protocol/Diaspora.php
src/Worker/APDelivery.php
src/Worker/Delivery.php
src/Worker/Notifier.php

index b064bbce8e8a318d591ed5830754fd8b39027612..1fccbca4d6b85fa072729b6bad8005027998c26d 100644 (file)
@@ -40,6 +40,7 @@ use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Emailer;
 use Friendica\Util\Security;
 use Friendica\Util\Strings;
+use Friendica\Worker\Delivery;
 
 require_once 'include/items.php';
 
@@ -603,7 +604,7 @@ function item_post(App $a) {
                $origin = $_REQUEST['origin'];
        }
 
-       $notify_type = ($toplevel_item_id ? 'comment-new' : 'wall-new');
+       $notify_type = ($toplevel_item_id ? Delivery::COMMENT : Delivery::POST);
 
        $uri = ($message_id ? $message_id : Item::newURI($api_source ? $profile_uid : $uid, $guid));
 
index 8ae412cd0a7d2fa7f1f416e76b424d36680ec01b..e57b3cbd3c740649234a4c11fc12373da26822bb 100644 (file)
@@ -28,6 +28,7 @@ use Friendica\Util\Network;
 use Friendica\Util\Security;
 use Friendica\Util\Strings;
 use Friendica\Util\XML;
+use Friendica\Worker\Delivery;
 use Text_LanguageDetect;
 
 class Item extends BaseObject
@@ -1521,7 +1522,7 @@ class Item extends BaseObject
                        $allow_gid = $item['allow_gid'];
                        $deny_cid  = $item['deny_cid'];
                        $deny_gid  = $item['deny_gid'];
-                       $notify_type = 'wall-new';
+                       $notify_type = Delivery::POST;
                } else {
                        // find the parent and snarf the item id and ACLs
                        // and anything else we need to inherit
@@ -1558,8 +1559,8 @@ class Item extends BaseObject
                                $allow_gid      = $parent['allow_gid'];
                                $deny_cid       = $parent['deny_cid'];
                                $deny_gid       = $parent['deny_gid'];
-                               $item['wall']    = $parent['wall'];
-                               $notify_type    = 'comment-new';
+                               $item['wall']   = $parent['wall'];
+                               $notify_type    = Delivery::COMMENT;
 
                                /*
                                 * If the parent is private, force privacy for the entire conversation
@@ -1603,6 +1604,10 @@ class Item extends BaseObject
                        }
                }
 
+               if (stristr($item['verb'], ACTIVITY_POKE)) {
+                       $notify_type = Delivery::POKE;
+               }
+
                $item['parent-uri-id'] = ItemURI::getIdByURI($item['parent-uri']);
                $item['thr-parent-id'] = ItemURI::getIdByURI($item['thr-parent']);
 
@@ -1881,11 +1886,13 @@ class Item extends BaseObject
                        Worker::add(['priority' => $priority, 'dont_fork' => true], 'Notifier', $notify_type, $current_post);
                } elseif ($item['visible'] && ((!empty($parent) && $parent['origin']) || $item['origin'])) {
                        if ($item['gravity'] == GRAVITY_ACTIVITY) {
-                               $cmd = $item['origin'] ? 'activity-new' : 'activity-import';
+                               $cmd = $item['origin'] ? Delivery::ACTIVITY : 'activity-import';
                        } elseif ($item['gravity'] == GRAVITY_COMMENT) {
-                               $cmd = $item['origin'] ? 'comment-new' : 'comment-import';
+                               $cmd = $item['origin'] ? Delivery::COMMENT : 'comment-import';
+                       } elseif (!empty($notify_type)) {
+                               $cmd = $notify_type;
                        } else {
-                               $cmd = 'wall-new';
+                               $cmd = Delivery::POST;
                        }
 
                        Worker::add(['priority' => $priority, 'dont_fork' => true], 'Notifier', $cmd, $current_post);
index e341de208033148971c7cb2e86246277ccc7cff3..ac1cf9c38d469793b7d7179de1cca1a0707167b0 100644 (file)
@@ -37,6 +37,7 @@ use Friendica\Util\Map;
 use Friendica\Util\Network;
 use Friendica\Util\Strings;
 use Friendica\Util\XML;
+use Friendica\Worker\Delivery;
 use SimpleXMLElement;
 
 /**
@@ -2148,9 +2149,9 @@ class Diaspora
                                continue;
                        }
                        if ($comment['verb'] == ACTIVITY_POST) {
-                               $cmd = $comment['self'] ? 'comment-new' : 'comment-import';
+                               $cmd = $comment['self'] ? Delivery::COMMENT : 'comment-import';
                        } else {
-                               $cmd = $comment['self'] ? 'like' : 'comment-import';
+                               $cmd = $comment['self'] ? Delivery::ACTIVITY : 'activity-import';
                        }
                        Logger::log("Send ".$cmd." for item ".$comment['id']." to contact ".$contact_id, Logger::DEBUG);
                        Worker::add(PRIORITY_HIGH, 'Delivery', $cmd, $comment['id'], $contact_id);
index 25c1dfb71929a7269166b61c035ad05b248b0282..9cef6b6d44b2107c008d5dc55a6ed8e2c7e8f69a 100644 (file)
@@ -37,6 +37,7 @@ class APDelivery extends BaseObject
                } elseif ($cmd == Delivery::SUGGESTION) {
                        $success = ActivityPub\Transmitter::sendContactSuggestion($uid, $inbox, $target_id);
                } elseif ($cmd == Delivery::RELOCATION) {
+               } elseif ($cmd == Delivery::POKE) {
                } elseif ($cmd == Delivery::REMOVAL) {
                        $success = ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox);
                } elseif ($cmd == Delivery::PROFILEUPDATE) {
index 6cd824365175ee8b0b52d95cc09f61010e2dd2eb..97bc58ef67411fd52345cd85e74790c7105798d2 100644 (file)
@@ -26,7 +26,9 @@ class Delivery extends BaseObject
        const RELOCATION    = 'relocate';
        const DELETION      = 'drop';
        const POST          = 'wall-new';
+       const POKE          = 'poke';
        const COMMENT       = 'comment-new';
+       const ACTIVITY      = 'activity-new';
        const REMOVAL       = 'removeme';
        const PROFILEUPDATE = 'profileupdate';
 
index 5094734808ca39cdca395792bac12e12206641cc..c2f61c55a426325ef97734ee1ae39d1bade45e0d 100644 (file)
@@ -442,7 +442,7 @@ class Notifier
                                        }
 
                                        if (in_array($rr['network'], [Protocol::DFRN, Protocol::DIASPORA]) && ($rr['protocol'] == Protocol::ACTIVITYPUB) &&
-                                               !in_array($cmd, [Delivery::SUGGESTION, Delivery::REMOVAL, Delivery::RELOCATION])) {
+                                               !in_array($cmd, [Delivery::SUGGESTION, Delivery::REMOVAL, Delivery::RELOCATION, Delivery::POKE])) {
                                                Logger::info('Contact is Friendica AP, so skipping delivery via legacy DFRN', ['url' => $rr['url']]);
                                                continue;
                                        }
@@ -482,7 +482,7 @@ class Notifier
                        }
 
                        if (in_array($contact['network'], [Protocol::DFRN, Protocol::DIASPORA]) && ($contact['protocol'] == Protocol::ACTIVITYPUB) &&
-                               !in_array($cmd, [Delivery::SUGGESTION, Delivery::REMOVAL, Delivery::RELOCATION])) {
+                               !in_array($cmd, [Delivery::SUGGESTION, Delivery::REMOVAL, Delivery::RELOCATION, Delivery::POKE])) {
                                Logger::info('Contact is Friendica AP, so skipping delivery via legacy DFRN', ['url' => $contact['url']]);
                                continue;
                        }