From 75b74f2e6c7d942c83220bf20f2b5f2c989af38d Mon Sep 17 00:00:00 2001 From: lukinovec Date: Thu, 30 Apr 2026 09:28:48 +0200 Subject: [PATCH] Make validateParameter have void return type --- src/Database/Concerns/ManagesPostgresUsers.php | 4 +++- .../Concerns/ValidatesDatabaseParameters.php | 16 +++++----------- .../MicrosoftSQLDatabaseManager.php | 8 ++++++-- .../MySQLDatabaseManager.php | 4 +++- ...ntrolledMicrosoftSQLServerDatabaseManager.php | 8 ++++++-- .../PermissionControlledMySQLDatabaseManager.php | 4 +++- .../PostgreSQLDatabaseManager.php | 8 ++++++-- .../PostgreSQLSchemaManager.php | 8 ++++++-- 8 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/Database/Concerns/ManagesPostgresUsers.php b/src/Database/Concerns/ManagesPostgresUsers.php index ddc03a34..62b920b9 100644 --- a/src/Database/Concerns/ManagesPostgresUsers.php +++ b/src/Database/Concerns/ManagesPostgresUsers.php @@ -45,7 +45,9 @@ trait ManagesPostgresUsers public function deleteUser(DatabaseConfig $databaseConfig): bool { // Tenant DB username - $username = $this->validateParameter($databaseConfig->getUsername()); + $username = $databaseConfig->getUsername(); + + $this->validateParameter($username); // Tenant host connection config $connectionName = $this->connection()->getConfig('name'); diff --git a/src/Database/Concerns/ValidatesDatabaseParameters.php b/src/Database/Concerns/ValidatesDatabaseParameters.php index 12f98d7e..343bb9a5 100644 --- a/src/Database/Concerns/ValidatesDatabaseParameters.php +++ b/src/Database/Concerns/ValidatesDatabaseParameters.php @@ -47,13 +47,13 @@ trait ValidatesDatabaseParameters * * @throws InvalidArgumentException */ - protected function validateParameter(string|array|null $parameters, string|null $allowlist = null): string|array|null + protected function validateParameter(string|array|null $parameters, string|null $allowlist = null): void { if (is_null($parameters)) { - // Return null if there's nothing to validate + // Return early if there's nothing to validate // (e.g. when $databaseConfig->getUsername() of an // improperly created tenant is passed). - return null; + return; } $allowlist = $allowlist ?? static::parameterAllowlist(); @@ -69,12 +69,6 @@ trait ValidatesDatabaseParameters } } } - throw new InvalidArgumentException("Invalid character '{$char}' in parameter: {$parameter}"); - } - } - } - - return $parameters; } /** @@ -84,8 +78,8 @@ trait ValidatesDatabaseParameters * * @throws InvalidArgumentException */ - protected function validatePassword(string|null $password): string|null + protected function validatePassword(string|null $password): void { - return $this->validateParameter($password, static::passwordAllowlist()); + $this->validateParameter($password, static::passwordAllowlist()); } } diff --git a/src/Database/TenantDatabaseManagers/MicrosoftSQLDatabaseManager.php b/src/Database/TenantDatabaseManagers/MicrosoftSQLDatabaseManager.php index e40f9e6e..f28ffd1e 100644 --- a/src/Database/TenantDatabaseManagers/MicrosoftSQLDatabaseManager.php +++ b/src/Database/TenantDatabaseManagers/MicrosoftSQLDatabaseManager.php @@ -10,14 +10,18 @@ class MicrosoftSQLDatabaseManager extends TenantDatabaseManager { public function createDatabase(TenantWithDatabase $tenant): bool { - $database = $this->validateParameter($tenant->database()->getName()); + $database = $tenant->database()->getName(); + + $this->validateParameter($database); return $this->connection()->statement("CREATE DATABASE [{$database}]"); } public function deleteDatabase(TenantWithDatabase $tenant): bool { - $database = $this->validateParameter($tenant->database()->getName()); + $database = $tenant->database()->getName(); + + $this->validateParameter($database); return $this->connection()->statement("DROP DATABASE [{$database}]"); } diff --git a/src/Database/TenantDatabaseManagers/MySQLDatabaseManager.php b/src/Database/TenantDatabaseManagers/MySQLDatabaseManager.php index 605db7de..9747e9de 100644 --- a/src/Database/TenantDatabaseManagers/MySQLDatabaseManager.php +++ b/src/Database/TenantDatabaseManagers/MySQLDatabaseManager.php @@ -21,7 +21,9 @@ class MySQLDatabaseManager extends TenantDatabaseManager public function deleteDatabase(TenantWithDatabase $tenant): bool { - $database = $this->validateParameter($tenant->database()->getName()); + $database = $tenant->database()->getName(); + + $this->validateParameter($database); return $this->connection()->statement("DROP DATABASE `{$database}`"); } diff --git a/src/Database/TenantDatabaseManagers/PermissionControlledMicrosoftSQLServerDatabaseManager.php b/src/Database/TenantDatabaseManagers/PermissionControlledMicrosoftSQLServerDatabaseManager.php index 2671fcb5..cbc43d18 100644 --- a/src/Database/TenantDatabaseManagers/PermissionControlledMicrosoftSQLServerDatabaseManager.php +++ b/src/Database/TenantDatabaseManagers/PermissionControlledMicrosoftSQLServerDatabaseManager.php @@ -40,7 +40,9 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL public function deleteUser(DatabaseConfig $databaseConfig): bool { - $username = $this->validateParameter($databaseConfig->getUsername()); + $username = $databaseConfig->getUsername(); + + $this->validateParameter($username); return $this->connection()->statement("DROP LOGIN [{$username}]"); } @@ -59,7 +61,9 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL public function deleteDatabase(TenantWithDatabase $tenant): bool { - $name = $this->validateParameter($tenant->database()->getName()); + $name = $tenant->database()->getName(); + + $this->validateParameter($name); // Close all connections to the database before deleting it // Set the database to SINGLE_USER mode to ensure that diff --git a/src/Database/TenantDatabaseManagers/PermissionControlledMySQLDatabaseManager.php b/src/Database/TenantDatabaseManagers/PermissionControlledMySQLDatabaseManager.php index d8eb3734..a4f74f8f 100644 --- a/src/Database/TenantDatabaseManagers/PermissionControlledMySQLDatabaseManager.php +++ b/src/Database/TenantDatabaseManagers/PermissionControlledMySQLDatabaseManager.php @@ -51,7 +51,9 @@ class PermissionControlledMySQLDatabaseManager extends MySQLDatabaseManager impl public function deleteUser(DatabaseConfig $databaseConfig): bool { - $username = $this->validateParameter($databaseConfig->getUsername()); + $username = $databaseConfig->getUsername(); + + $this->validateParameter($username); return $this->connection()->statement("DROP USER IF EXISTS '{$username}'"); } diff --git a/src/Database/TenantDatabaseManagers/PostgreSQLDatabaseManager.php b/src/Database/TenantDatabaseManagers/PostgreSQLDatabaseManager.php index e1219e8c..fc293403 100644 --- a/src/Database/TenantDatabaseManagers/PostgreSQLDatabaseManager.php +++ b/src/Database/TenantDatabaseManagers/PostgreSQLDatabaseManager.php @@ -10,14 +10,18 @@ class PostgreSQLDatabaseManager extends TenantDatabaseManager { public function createDatabase(TenantWithDatabase $tenant): bool { - $name = $this->validateParameter($tenant->database()->getName()); + $name = $tenant->database()->getName(); + + $this->validateParameter($name); return $this->connection()->statement("CREATE DATABASE \"{$name}\" WITH TEMPLATE=template0"); } public function deleteDatabase(TenantWithDatabase $tenant): bool { - $name = $this->validateParameter($tenant->database()->getName()); + $name = $tenant->database()->getName(); + + $this->validateParameter($name); return $this->connection()->statement("DROP DATABASE \"{$name}\""); } diff --git a/src/Database/TenantDatabaseManagers/PostgreSQLSchemaManager.php b/src/Database/TenantDatabaseManagers/PostgreSQLSchemaManager.php index 3ffbc858..354eb768 100644 --- a/src/Database/TenantDatabaseManagers/PostgreSQLSchemaManager.php +++ b/src/Database/TenantDatabaseManagers/PostgreSQLSchemaManager.php @@ -10,14 +10,18 @@ class PostgreSQLSchemaManager extends TenantDatabaseManager { public function createDatabase(TenantWithDatabase $tenant): bool { - $name = $this->validateParameter($tenant->database()->getName()); + $name = $tenant->database()->getName(); + + $this->validateParameter($name); return $this->connection()->statement("CREATE SCHEMA \"{$name}\""); } public function deleteDatabase(TenantWithDatabase $tenant): bool { - $name = $this->validateParameter($tenant->database()->getName()); + $name = $tenant->database()->getName(); + + $this->validateParameter($name); return $this->connection()->statement("DROP SCHEMA \"{$name}\" CASCADE"); }