Skip to content

Commit

Permalink
Fix compatibility with DBAL 4.x
Browse files Browse the repository at this point in the history
  • Loading branch information
kissifrot committed Oct 24, 2024
1 parent 96a1d7e commit 4e7a4eb
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
12 changes: 6 additions & 6 deletions Dbal/Schema.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,9 @@ protected function addEntryTable()
$table->addUniqueIndex(['class_id', 'object_identity_id', 'field_name', 'ace_order']);
$table->addIndex(['class_id', 'object_identity_id', 'security_identity_id']);

$table->addForeignKeyConstraint($this->getTable($this->options['class_table_name']), ['class_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
$table->addForeignKeyConstraint($this->getTable($this->options['oid_table_name']), ['object_identity_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
$table->addForeignKeyConstraint($this->getTable($this->options['sid_table_name']), ['security_identity_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
$table->addForeignKeyConstraint($this->getTable($this->options['class_table_name'])->getName(), ['class_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
$table->addForeignKeyConstraint($this->getTable($this->options['oid_table_name'])->getName(), ['object_identity_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
$table->addForeignKeyConstraint($this->getTable($this->options['sid_table_name'])->getName(), ['security_identity_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => 'CASCADE']);
}

/**
Expand All @@ -116,7 +116,7 @@ protected function addObjectIdentitiesTable()
$table->addUniqueIndex(['object_identifier', 'class_id']);
$table->addIndex(['parent_object_identity_id']);

$table->addForeignKeyConstraint($table, ['parent_object_identity_id'], ['id']);
$table->addForeignKeyConstraint($table->getName(), ['parent_object_identity_id'], ['id']);
}

/**
Expand All @@ -137,8 +137,8 @@ protected function addObjectIdentityAncestorsTable()
// MS SQL Server does not support recursive cascading
$action = 'NO ACTION';
}
$table->addForeignKeyConstraint($oidTable, ['object_identity_id'], ['id'], ['onDelete' => $action, 'onUpdate' => $action]);
$table->addForeignKeyConstraint($oidTable, ['ancestor_id'], ['id'], ['onDelete' => $action, 'onUpdate' => $action]);
$table->addForeignKeyConstraint($oidTable->getName(), ['object_identity_id'], ['id'], ['onDelete' => $action, 'onUpdate' => $action]);
$table->addForeignKeyConstraint($oidTable->getName(), ['ancestor_id'], ['id'], ['onDelete' => $action, 'onUpdate' => $action]);
}

/**
Expand Down
21 changes: 16 additions & 5 deletions Tests/Dbal/MutableAclProviderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -261,10 +261,18 @@ public function testUpdateDoesNothingWhenThereAreNoChanges()
->expects($this->never())
->method('beginTransaction')
;
$con
->expects($this->never())
->method('executeUpdate')
;
if (method_exists(Connection::class, 'executeUpdate')) {
// DBAL < 4.0
$con
->expects($this->never())
->method('executeUpdate')
;
} else {
$con
->expects($this->never())
->method('executeStatement')
;
}

$provider = new MutableAclProvider($con, new PermissionGrantingStrategy(), []);
$acl = new Acl(1, new ObjectIdentity(1, 'Foo'), new PermissionGrantingStrategy(), [], true);
Expand Down Expand Up @@ -536,7 +544,10 @@ protected function setUp(): void
],
$configuration
);
$this->connection->setNestTransactionsWithSavepoints(true);
if (method_exists($configuration, 'setNestTransactionsWithSavepoints')) {
// DBAL < 4.0
$this->connection->setNestTransactionsWithSavepoints(true);
}

// import the schema
$schema = new Schema($this->getOptions());
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"doctrine/cache": "^1.11|^2.0",
"doctrine/common": "^2.2|^3",
"doctrine/persistence": "^1.3.3|^2|^3",
"doctrine/dbal": "^2.13.1|^3.1",
"doctrine/dbal": "^2.13.1|^3.1|^4.0",
"psr/log": "^1|^2|^3"
},
"autoload": {
Expand Down

0 comments on commit 4e7a4eb

Please sign in to comment.