]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub.php
Merge branch '2021.03-rc' into copyright-2021
[friendica.git] / src / Protocol / ActivityPub.php
index c04b9e592debc183f60930959c7e5b7b46086c24..c42dad2eb39c26dc6b6990f0e924235d05455b0a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -68,7 +68,7 @@ class ActivityPub
                'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
                'sensitive' => 'as:sensitive', 'Hashtag' => 'as:Hashtag',
                'directMessage' => 'litepub:directMessage']];
-       const ACCOUNT_TYPES = ['Person', 'Organization', 'Service', 'Group', 'Application'];
+       const ACCOUNT_TYPES = ['Person', 'Organization', 'Service', 'Group', 'Application', 'Tombstone'];
        /**
         * Checks if the web request is done for the AP protocol
         *
@@ -77,6 +77,7 @@ class ActivityPub
        public static function isRequest()
        {
                return stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/activity+json') ||
+                       stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/json') ||
                        stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/ld+json');
        }
 
@@ -90,20 +91,6 @@ class ActivityPub
         */
        public static function fetchContent(string $url, int $uid = 0)
        {
-               if (empty($uid)) {
-                       $user = User::getFirstAdmin(['uid']);
-               
-                       if (empty($user['uid'])) {
-                               // When the system setup is missing an admin we just take the first user
-                               $condition = ['verified' => true, 'blocked' => false, 'account_removed' => false, 'account_expired' => false];
-                               $user = DBA::selectFirst('user', ['uid'], $condition);
-                       }
-
-                       if (!empty($user['uid'])) {
-                               $uid = $user['uid'];
-                       }
-               }
-
                return HTTPSignature::fetch($url, $uid);
        }
 
@@ -127,6 +114,9 @@ class ActivityPub
                        case 'Application':
                                $accounttype = User::ACCOUNT_TYPE_RELAY;
                                break;
+                       case 'Tombstone':
+                               $accounttype = User::ACCOUNT_TYPE_DELETED;
+                               break;
                }
 
                return $accounttype;
@@ -171,6 +161,7 @@ class ActivityPub
                $profile['poll'] = $apcontact['outbox'];
                $profile['pubkey'] = $apcontact['pubkey'];
                $profile['subscribe'] = $apcontact['subscribe'];
+               $profile['manually-approve'] = $apcontact['manually-approve'];
                $profile['baseurl'] = $apcontact['baseurl'];
                $profile['gsid'] = $apcontact['gsid'];