1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-05-07 07:34:03 +00:00

Make validateParameter have void return type

This commit is contained in:
lukinovec 2026-04-30 09:28:48 +02:00
parent f3f1ab977a
commit 75b74f2e6c
8 changed files with 38 additions and 22 deletions

View file

@ -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');

View file

@ -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());
}
}

View file

@ -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}]");
}

View file

@ -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}`");
}

View file

@ -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

View file

@ -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}'");
}

View file

@ -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}\"");
}

View file

@ -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");
}