]> 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 5554af7d81c0b11c107c9170bf4a41114f781030..affb3cf8724e55b4f0bd8560d0f8e4930e7a8166 100644 (file)
@@ -463,7 +463,7 @@ class Diaspora
                // Once we have the author URI, go to the web and try to find their public key
                // (first this will look it up locally if it is in the diaspora-contact cache)
                // This will also convert diaspora public key from pkcs#1 to pkcs#8
-               Logger::notice('Fetching key for ' . $author);
+               Logger::info('Fetching key for ' . $author);
                $key = self::key($author);
                if (!$key) {
                        Logger::notice('Could not retrieve author key.');
@@ -477,7 +477,7 @@ class Diaspora
                        throw new \Friendica\Network\HTTPException\BadRequestException();
                }
 
-               Logger::notice('Message verified.');
+               Logger::info('Message verified.');
 
                return [
                        'message' => $inner_decrypted,
@@ -1154,7 +1154,7 @@ class Diaspora
        {
                // Check for Diaspora (and Friendica) typical paths
                if (!preg_match('=(https?://.+)/(?:posts|display|objects)/([a-zA-Z0-9-_@.:%]+[a-zA-Z0-9])=i', $url, $matches)) {
-                       Logger::info('Invalid url', ['url' => $url]);
+                       Logger::notice('Invalid url', ['url' => $url]);
                        return false;
                }
 
@@ -1175,7 +1175,7 @@ class Diaspora
                        Logger::info('Found', ['id' => $item['id']]);
                        return $item['id'];
                } else {
-                       Logger::info('Not found', ['guid' => $guid, 'uid' => $uid]);
+                       Logger::notice('Not found', ['guid' => $guid, 'uid' => $uid]);
                        return false;
                }
        }
@@ -1225,7 +1225,7 @@ class Diaspora
                        Logger::notice('Parent item not found: parent: ' . $guid . ' - user: ' . $uid);
                        return false;
                } else {
-                       Logger::notice('Parent item found: parent: ' . $guid . ' - user: ' . $uid);
+                       Logger::info('Parent item found: parent: ' . $guid . ' - user: ' . $uid);
                        return $item;
                }
        }
@@ -1365,7 +1365,7 @@ class Diaspora
                        return false;
                }
 
-               Logger::notice('Got migration for ' . $old_author . ', to ' . $new_author . ' with user ' . $importer['uid']);
+               Logger::info('Got migration for ' . $old_author . ', to ' . $new_author . ' with user ' . $importer['uid']);
 
                // Check signature
                $signed_text = 'AccountMigration:' . $old_author . ':' . $new_author;
@@ -1399,7 +1399,7 @@ class Diaspora
 
                Contact::update($fields, ['addr' => $old_author->getAddr()]);
 
-               Logger::notice('Contacts are updated.');
+               Logger::info('Contacts are updated.');
 
                return true;
        }
@@ -1422,7 +1422,7 @@ class Diaspora
                }
                DBA::close($contacts);
 
-               Logger::notice('Removed contacts for ' . $author_handle);
+               Logger::info('Removed contacts for ' . $author_handle);
 
                return true;
        }
@@ -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
@@ -2204,7 +2204,7 @@ class Diaspora
                $author = WebFingerUri::fromString($author_handle);
 
                // the current protocol version doesn't know these fields
-               // That means that we will assume their existance
+               // That means that we will assume their existence
                if (isset($data->following)) {
                        $following = (XML::unescape($data->following) == 'true');
                } else {
@@ -2255,7 +2255,7 @@ class Diaspora
                } elseif (!$following && $sharing) {
                        Logger::info("Author " . $author . " wants to share with us.");
                } elseif ($following && $sharing) {
-                       Logger::info("Author " . $author . " wants to have a bidirectional conection.");
+                       Logger::info("Author " . $author . " wants to have a bidirectional connection.");
                } elseif ($following && !$sharing) {
                        Logger::info("Author " . $author . " wants to listen to us.");
                }
@@ -2756,7 +2756,7 @@ class Diaspora
         * ************************************************************************************** */
 
        /**
-        * returnes the handle of a contact
+        * returns the handle of a contact
         *
         * @param array $contact contact array
         *
@@ -2770,7 +2770,7 @@ class Diaspora
                }
 
                // Normally we should have a filled "addr" field - but in the past this wasn't the case
-               // So - just in case - we build the the address here.
+               // So - just in case - we build the address here.
                if ($contact['nickname'] != '') {
                        $nick = $contact['nickname'];
                } else {
@@ -2955,7 +2955,7 @@ class Diaspora
                        return 0;
                }
 
-               Logger::notice('transmit: ' . $logid . '-' . $guid . ' ' . $dest_url);
+               Logger::info('transmit: ' . $logid . '-' . $guid . ' ' . $dest_url);
 
                if (!intval(DI::config()->get('system', 'diaspora_test'))) {
                        $content_type = (($public_batch) ? 'application/magic-envelope+xml' : 'application/json');
@@ -2973,7 +2973,7 @@ class Diaspora
                        GServer::setReachableById($contact['gsid'], Protocol::DIASPORA);
                }
 
-               Logger::notice('transmit: ' . $logid . '-' . $guid . ' to ' . $dest_url . ' returns: ' . $return_code);
+               Logger::info('transmit: ' . $logid . '-' . $guid . ' to ' . $dest_url . ' returns: ' . $return_code);
 
                return $return_code ? $return_code : -1;
        }
@@ -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;