]> git.mxchange.org Git - friendica.git/commitdiff
We can delete notes / changed credits
authorMichael <heluecht@pirati.ca>
Sun, 23 Sep 2018 09:20:25 +0000 (09:20 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 23 Sep 2018 09:20:25 +0000 (09:20 +0000)
src/Protocol/ActivityPub.php
src/Util/HTTPSignature.php
src/Util/LDSignature.php

index 87889300c7bcc91e07f83c991df82f86cb8354d8..4d7657865c226e3c19bfd7921cd28504df0a4363 100644 (file)
@@ -34,10 +34,6 @@ use Friendica\Util\LDSignature;
  *
  * Digest: https://tools.ietf.org/html/rfc5843
  * https://tools.ietf.org/html/draft-cavage-http-signatures-10#ref-15
- * https://github.com/digitalbazaar/php-json-ld
- *
- * Part of the code for HTTP signing is taken from the Osada project.
- * https://framagit.org/macgirvin/osada
  *
  * To-do:
  *
@@ -46,8 +42,8 @@ use Friendica\Util\LDSignature;
  * - Object Types: Person, Tombstome
  *
  * Transmitter:
- * - Activities: Announce, Delete Notes
- * - Object Tyoes: Person, Tombstone
+ * - Activities: Announce
+ * - Object Tyoes: Person
  *
  * General:
  * - Endpoints: Outbox, Follower, Following
@@ -344,8 +340,10 @@ class ActivityPub
                                'atomUri' => 'ostatus:atomUri', 'conversation' => 'ostatus:conversation',
                                'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri']]];
 
-                       if ($item['deleted']) {
+                       if ($item['deleted'] && ($item['gravity'] == GRAVITY_ACTIVITY)) {
                                $type = 'Undo';
+                       } elseif ($item['deleted']) {
+                               $type = 'Delete';
                        }
                } else {
                        $data = [];
@@ -365,7 +363,7 @@ class ActivityPub
 
                $data = array_merge($data, ActivityPub::createPermissionBlockForItem($item));
 
-               if (in_array($data['type'], ['Create', 'Update', 'Announce'])) {
+               if (in_array($data['type'], ['Create', 'Update', 'Announce', 'Delete'])) {
                        $data['object'] = self::CreateNote($item);
                } elseif ($data['type'] == 'Undo') {
                        $data['object'] = self::createActivityFromItem($item_id, true);
@@ -441,9 +439,18 @@ class ActivityPub
                        $type = 'Note';
                }
 
+               if ($item['deleted']) {
+                       $type = 'Tombstone';
+               }
+
                $data = [];
                $data['id'] = $item['uri'];
                $data['type'] = $type;
+
+               if ($item['deleted']) {
+                       return $data;
+               }
+
                $data['summary'] = null; // Ignore by now
 
                if ($item['uri'] != $item['thr-parent']) {
index 8fa8566af378b30bba135efcfefca8b89fffeb5d..aba280cf1dc57fd54205a915e7bfe6db21b8b374 100644 (file)
@@ -16,6 +16,9 @@ use Friendica\Protocol\ActivityPub;
  *
  * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/Zotlabs/Web/HTTPSig.php
  *
+ * Other parts of the code for HTTP signing are taken from the Osada project.
+ * https://framagit.org/macgirvin/osada
+ *
  * @see https://tools.ietf.org/html/draft-cavage-http-signatures-07
  */
 
index 6db66a52a5ecdb086c1a7ff0b8a5ad67af29613d..6d6dd16f3a63d70b6caf18a9aef4e335573e0db3 100644 (file)
@@ -6,6 +6,11 @@ use Friendica\Util\JsonLD;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Protocol\ActivityPub;
 
+/**
+ * @brief Implements JSON-LD signatures
+ *
+ * Ported from Osada: https://framagit.org/macgirvin/osada
+ */
 class LDSignature
 {
        public static function isSigned($data)