]> git.mxchange.org Git - friendica.git/commitdiff
Simplified signature creation
authorMichael <heluecht@pirati.ca>
Thu, 5 Aug 2021 08:42:46 +0000 (08:42 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 5 Aug 2021 08:42:46 +0000 (08:42 +0000)
src/Model/Item.php
src/Protocol/Diaspora.php

index 0c48c9529189bc4d418eea659c6d8613cb28a8a4..3e0faddf75bac667b98427023366150c5b02fc18 100644 (file)
@@ -1061,13 +1061,7 @@ class Item
 
                // Create Diaspora signature
                if ($item['origin'] && empty($item['diaspora_signed_text']) && ($item['gravity'] != GRAVITY_PARENT)) {
-                       if ($uid == 0) {
-                               $sender_contact = Contact::getById($item['contact-id'], ['uid']);
-                               $sender_uid = $sender_contact['uid'];
-                       } else {
-                               $sender_uid = $uid;
-                       }
-                       $signed = Diaspora::createCommentSignature($sender_uid, $item);
+                       $signed = Diaspora::createCommentSignature($item);
                        if (!empty($signed)) {
                                $item['diaspora_signed_text'] = json_encode($signed);
                        }
index 53140521d0634a1a35415355a0f050a46b2e3435..2c3e9add63af3eea9ee128ec0da82cb095d1d7f8 100644 (file)
@@ -4044,14 +4044,25 @@ class Diaspora
        /**
         * Creates the signature for Comments that are created on our system
         *
-        * @param integer $uid  The user of that comment
         * @param array   $item Item array
         *
         * @return array Signed content
         * @throws \Exception
         */
-       public static function createCommentSignature($uid, array $item)
+       public static function createCommentSignature(array $item)
        {
+               $contact = Contact::getById($item['author-id'], ['url']);
+               if (empty($contact['url'])) {
+                       Logger::warning('Author Contact not found', ['author-id' => $item['author-id']]);
+                       return false;
+               }
+
+               $uid = User::getIdForURL($contact['url']);
+               if (empty($uid)) {
+                       Logger::info('No owner post, so not storing signature', ['url' => $contact['url']]);
+                       return false;
+               }
+
                $owner = User::getOwnerDataById($uid);
                if (empty($owner)) {
                        Logger::info('No owner post, so not storing signature');