Skip to content

Commit 554c5bb

Browse files
committed
Remove tenant set on update
1 parent 0d4dc51 commit 554c5bb

File tree

3 files changed

+48
-5
lines changed

3 files changed

+48
-5
lines changed

src/Database/Adapter/MariaDB.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,10 +1134,6 @@ public function updateDocument(string $collection, string $id, Document $documen
11341134
$attributes['_updatedAt'] = $document->getUpdatedAt();
11351135
$attributes['_permissions'] = json_encode($document->getPermissions());
11361136

1137-
if ($this->sharedTables) {
1138-
$attributes['_tenant'] = $this->tenant;
1139-
}
1140-
11411137
$name = $this->filter($collection);
11421138
$columns = '';
11431139

src/Database/Database.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3902,7 +3902,7 @@ public function updateDocument(string $collection, string $id, Document $documen
39023902
$document['$createdAt'] = $old->getCreatedAt(); // Make sure user doesn't switch createdAt
39033903

39043904
if ($this->adapter->getSharedTables()) {
3905-
$document['$tenant'] = $old->getTenant(); // Make sure user doesn't switch tenant
3905+
$document['$tenant'] = $old->getTenant(); // Make sure user doesn't switch tenant
39063906
}
39073907

39083908
$document = new Document($document);

tests/e2e/Adapter/Base.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16569,6 +16569,53 @@ public function testSharedTablesDuplicates(): void
1656916569
->setDatabase($schema);
1657016570
}
1657116571

16572+
public function testSharedTablesUpdateTenant(): void
16573+
{
16574+
$database = static::getDatabase();
16575+
$sharedTables = $database->getSharedTables();
16576+
$namespace = $database->getNamespace();
16577+
$schema = $database->getDatabase();
16578+
16579+
if (!$database->getAdapter()->getSupportForSchemas()) {
16580+
$this->expectNotToPerformAssertions();
16581+
return;
16582+
}
16583+
16584+
if ($database->exists('sharedTables')) {
16585+
$database->setDatabase('sharedTables')->delete();
16586+
}
16587+
16588+
$database
16589+
->setDatabase('sharedTables')
16590+
->setNamespace('')
16591+
->setSharedTables(true)
16592+
->setTenant(null)
16593+
->create();
16594+
16595+
// Create collection
16596+
$database->createCollection(__FUNCTION__, documentSecurity: false);
16597+
16598+
$database
16599+
->setTenant(1)
16600+
->updateDocument(Database::METADATA, __FUNCTION__, new Document([
16601+
'$id' => __FUNCTION__,
16602+
'name' => 'Scooby Doo',
16603+
]));
16604+
16605+
// Ensure tenant was not swapped
16606+
$doc = $database
16607+
->setTenant(null)
16608+
->getDocument(Database::METADATA, __FUNCTION__);
16609+
16610+
$this->assertEquals('Scooby Doo', $doc['name']);
16611+
16612+
// Reset state
16613+
$database
16614+
->setSharedTables($sharedTables)
16615+
->setNamespace($namespace)
16616+
->setDatabase($schema);
16617+
}
16618+
1657216619
public function testSharedTablesTenantPerDocument(): void
1657316620
{
1657416621
$database = static::getDatabase();

0 commit comments

Comments
 (0)