From 2eafda4ee232311d344aa8d3d9c54286e73547ad Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 2 May 2023 19:53:11 +1200 Subject: [PATCH] Fix update document merging existing data after pre-processing instead of before --- app/controllers/api/databases.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/api/databases.php b/app/controllers/api/databases.php index 8419d0d437..498af87dca 100644 --- a/app/controllers/api/databases.php +++ b/app/controllers/api/databases.php @@ -3279,6 +3279,7 @@ App::patch('/v1/databases/:databaseId/collections/:collectionId/documents/:docum $permissions = $document->getPermissions() ?? []; } + $data = \array_merge($document->getArrayCopy(), $data); // Merge existing data with new data $data['$collection'] = $collection->getId(); // Make sure user doesn't switch collectionID $data['$createdAt'] = $document->getCreatedAt(); // Make sure user doesn't switch createdAt $data['$id'] = $document->getId(); // Make sure user doesn't switch document unique ID @@ -3368,8 +3369,6 @@ App::patch('/v1/databases/:databaseId/collections/:collectionId/documents/:docum $checkPermissions($collection, $newDocument, $document, Database::PERMISSION_UPDATE); - $newDocument = new Document(\array_merge($document->getArrayCopy(), $data)); - try { $document = $dbForProject->withRequestTimestamp( $requestTimestamp,