From 5542e5b04c628827094f662dd922ab0ee7e192df Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 11 Oct 2022 22:49:59 +0000 Subject: [PATCH] Only delete collection data for correct db Ensure attributes, indexes, and audit for correct database is deleted. --- app/workers/deletes.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 19ab56c69a..b015043b1d 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -193,21 +193,24 @@ class DeletesV1 extends Worker protected function deleteCollection(Document $document, string $projectId): void { $collectionId = $document->getId(); - $databaseId = str_replace('database_', '', $document->getCollection()); + $databaseId = $document->getAttribute('databaseId'); + $databaseInternalId = $document->getAttribute('databaseInternalId'); $dbForProject = $this->getProjectDB($projectId); - $dbForProject->deleteCollection('database_' . $databaseId . '_collection_' . $document->getInternalId()); + $dbForProject->deleteCollection('database_' . $databaseInternalId . '_collection_' . $document->getInternalId()); $this->deleteByGroup('attributes', [ + Query::equal('databaseId', [$databaseId]), Query::equal('collectionId', [$collectionId]) ], $dbForProject); $this->deleteByGroup('indexes', [ + Query::equal('databaseId', [$databaseId]), Query::equal('collectionId', [$collectionId]) ], $dbForProject); - $this->deleteAuditLogsByResource('collection/' . $collectionId, $projectId); + $this->deleteAuditLogsByResource('database/' . $databaseId . '/collection/' . $collectionId, $projectId); } /**