mirror of
https://github.com/archtechx/tenancy.git
synced 2026-05-07 00:04:04 +00:00
Make validateParameter have void return type
This commit is contained in:
parent
f3f1ab977a
commit
75b74f2e6c
8 changed files with 38 additions and 22 deletions
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}]");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}`");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}'");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}\"");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue