Browse Source

Update InboxPipeline, fix peertube attributedTo parsing

Daniel Supernault 2 years ago
parent
commit
99fb80bf5d

+ 11 - 3
app/Jobs/InboxPipeline/DeleteWorker.php

@@ -140,9 +140,17 @@ class DeleteWorker implements ShouldQueue
 			&& is_array($bodyDecoded['object'])
 			&& isset($bodyDecoded['object']['attributedTo'])
 		) {
-			if(parse_url($bodyDecoded['object']['attributedTo'], PHP_URL_HOST) !== $keyDomain) {
-				return;
-			}
+            $attr = Helpers::pluckval($bodyDecoded['object']['attributedTo']);
+            if(is_array($attr)) {
+                if(isset($attr['id'])) {
+                    $attr = $attr['id'];
+                } else {
+                    $attr = "";
+                }
+            }
+            if(parse_url($attr, PHP_URL_HOST) !== $keyDomain) {
+                return;
+            }
 		}
 		if(!$keyDomain || !$idDomain || $keyDomain !== $idDomain) {
 			return;

+ 9 - 1
app/Jobs/InboxPipeline/InboxValidator.php

@@ -167,7 +167,15 @@ class InboxValidator implements ShouldQueue
             && is_array($bodyDecoded['object'])
             && isset($bodyDecoded['object']['attributedTo'])
         ) {
-            if(parse_url(Helpers::pluckval($bodyDecoded['object']['attributedTo']), PHP_URL_HOST) !== $keyDomain) {
+            $attr = Helpers::pluckval($bodyDecoded['object']['attributedTo']);
+            if(is_array($attr)) {
+                if(isset($attr['id'])) {
+                    $attr = $attr['id'];
+                } else {
+                    $attr = "";
+                }
+            }
+            if(parse_url($attr, PHP_URL_HOST) !== $keyDomain) {
                 return;
             }
         }

+ 9 - 1
app/Jobs/InboxPipeline/InboxWorker.php

@@ -157,7 +157,15 @@ class InboxWorker implements ShouldQueue
             && is_array($bodyDecoded['object'])
             && isset($bodyDecoded['object']['attributedTo'])
         ) {
-            if(parse_url(Helpers::pluckval($bodyDecoded['object']['attributedTo']), PHP_URL_HOST) !== $keyDomain) {
+            $attr = Helpers::pluckval($bodyDecoded['object']['attributedTo']);
+            if(is_array($attr)) {
+                if(isset($attr['id'])) {
+                    $attr = $attr['id'];
+                } else {
+                    $attr = "";
+                }
+            }
+            if(parse_url($attr, PHP_URL_HOST) !== $keyDomain) {
                 return;
             }
         }