Ver código fonte

fix(job): Check if carddata is resource and read it to string

Fixes nextcloud/server#46100

Co-authored-by: Christoph Wurst <ChristophWurst@users.noreply.github.com>
Signed-off-by: Mikhail Kotelnikov <fox@woland.me>
Mikhail Kotelnikov 5 dias atrás
pai
commit
9e6bb3c5a8

+ 5 - 1
apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php

@@ -110,7 +110,11 @@ class BuildSocialSearchIndexBackgroundJob extends QueuedJob {
 		// refresh identified contacts in order to re-index
 		foreach ($social_cards as $contact) {
 			$offset = $contact['id'];
-			$this->davBackend->updateCard($contact['addressbookid'], $contact['uri'], $contact['carddata']);
+			$cardData = $contact['carddata'];
+			if (is_resource($cardData) && (get_resource_type($cardData) === 'stream')) {
+				$cardData = stream_get_contents($cardData);
+			}
+			$this->davBackend->updateCard($contact['addressbookid'], $contact['uri'], $cardData);
 
 			// stop after 15sec (to be continued with next chunk)
 			if (($this->timeFactory->getTime() - $startTime) > 15) {