]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Diaspora.php
Ensure to transmit the audience if the parent does so
[friendica.git] / src / Protocol / Diaspora.php
index 96a224c69e59ce73ac1f12ef2be40138d035b572..affb3cf8724e55b4f0bd8560d0f8e4930e7a8166 100644 (file)
@@ -2068,7 +2068,7 @@ class Diaspora
        }
 
        /**
-        * Processes poll participations - unssupported
+        * Processes poll participations - unsupported
         *
         * @param array  $importer Array of the importer user
         * @param object $data     The message object
@@ -4049,7 +4049,7 @@ class Diaspora
                        return false;
                }
 
-               if (!self::parentSupportDiaspora($item['thr-parent-id'])) {
+               if (!self::parentSupportDiaspora($item['thr-parent-id'], $uid)) {
                        Logger::info('One of the parents does not support Diaspora. A signature will not be created.', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
                        return false;
                }
@@ -4068,13 +4068,14 @@ class Diaspora
         * Check if the parent and their parents support Diaspora
         *
         * @param integer $parent_id
+        * @param integer $uid
         * @return boolean
         * @throws InternalServerErrorException
         * @throws \ImagickException
         */
-       private static function parentSupportDiaspora(int $parent_id): bool
+       private static function parentSupportDiaspora(int $parent_id, int $uid): bool
        {
-               $parent_post = Post::selectFirstPost(['gravity', 'signed_text', 'author-link', 'thr-parent-id'], ['uri-id' => $parent_id]);
+               $parent_post = Post::selectFirst(['gravity', 'signed_text', 'author-link', 'thr-parent-id', 'protocol'], ['uri-id' => $parent_id, 'uid' => [0, $uid]]);
                if (empty($parent_post['thr-parent-id'])) {
                        Logger::warning('Parent post does not exist.', ['parent-id' => $parent_id]);
                        return false;
@@ -4085,13 +4086,13 @@ class Diaspora
                        return false;
                }
 
-               if (($parent_post['gravity'] == Item::GRAVITY_COMMENT) && empty($parent_post['signed_text'])) {
+               if (($parent_post['protocol'] != Conversation::PARCEL_DIASPORA) && ($parent_post['gravity'] == Item::GRAVITY_COMMENT) && empty($parent_post['signed_text'])) {
                        Logger::info('Parent comment has got no Diaspora signature.', ['parent-id' => $parent_id]);
                        return false;
                }
 
                if ($parent_post['gravity'] == Item::GRAVITY_COMMENT) {
-                       return self::parentSupportDiaspora($parent_post['thr-parent-id']);
+                       return self::parentSupportDiaspora($parent_post['thr-parent-id'], $uid);
                }
 
                return true;