mirror of
https://github.com/archtechx/tenancy.git
synced 2026-05-06 15:24:03 +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
|
public function deleteUser(DatabaseConfig $databaseConfig): bool
|
||||||
{
|
{
|
||||||
// Tenant DB username
|
// Tenant DB username
|
||||||
$username = $this->validateParameter($databaseConfig->getUsername());
|
$username = $databaseConfig->getUsername();
|
||||||
|
|
||||||
|
$this->validateParameter($username);
|
||||||
|
|
||||||
// Tenant host connection config
|
// Tenant host connection config
|
||||||
$connectionName = $this->connection()->getConfig('name');
|
$connectionName = $this->connection()->getConfig('name');
|
||||||
|
|
|
||||||
|
|
@ -47,13 +47,13 @@ trait ValidatesDatabaseParameters
|
||||||
*
|
*
|
||||||
* @throws InvalidArgumentException
|
* @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)) {
|
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
|
// (e.g. when $databaseConfig->getUsername() of an
|
||||||
// improperly created tenant is passed).
|
// improperly created tenant is passed).
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$allowlist = $allowlist ?? static::parameterAllowlist();
|
$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
|
* @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
|
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}]");
|
return $this->connection()->statement("CREATE DATABASE [{$database}]");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
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}]");
|
return $this->connection()->statement("DROP DATABASE [{$database}]");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@ class MySQLDatabaseManager extends TenantDatabaseManager
|
||||||
|
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
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}`");
|
return $this->connection()->statement("DROP DATABASE `{$database}`");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL
|
||||||
|
|
||||||
public function deleteUser(DatabaseConfig $databaseConfig): bool
|
public function deleteUser(DatabaseConfig $databaseConfig): bool
|
||||||
{
|
{
|
||||||
$username = $this->validateParameter($databaseConfig->getUsername());
|
$username = $databaseConfig->getUsername();
|
||||||
|
|
||||||
|
$this->validateParameter($username);
|
||||||
|
|
||||||
return $this->connection()->statement("DROP LOGIN [{$username}]");
|
return $this->connection()->statement("DROP LOGIN [{$username}]");
|
||||||
}
|
}
|
||||||
|
|
@ -59,7 +61,9 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL
|
||||||
|
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
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
|
// Close all connections to the database before deleting it
|
||||||
// Set the database to SINGLE_USER mode to ensure that
|
// 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
|
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}'");
|
return $this->connection()->statement("DROP USER IF EXISTS '{$username}'");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,18 @@ class PostgreSQLDatabaseManager extends TenantDatabaseManager
|
||||||
{
|
{
|
||||||
public function createDatabase(TenantWithDatabase $tenant): bool
|
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");
|
return $this->connection()->statement("CREATE DATABASE \"{$name}\" WITH TEMPLATE=template0");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
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}\"");
|
return $this->connection()->statement("DROP DATABASE \"{$name}\"");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,18 @@ class PostgreSQLSchemaManager extends TenantDatabaseManager
|
||||||
{
|
{
|
||||||
public function createDatabase(TenantWithDatabase $tenant): bool
|
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}\"");
|
return $this->connection()->statement("CREATE SCHEMA \"{$name}\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteDatabase(TenantWithDatabase $tenant): bool
|
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");
|
return $this->connection()->statement("DROP SCHEMA \"{$name}\" CASCADE");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue