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

Tenant DB manager database() -> connection()

This commit is contained in:
Samuel Štancl 2024-09-12 18:34:45 +02:00
parent f3e01c1581
commit 0fc105487b
13 changed files with 60 additions and 60 deletions

View file

@ -25,24 +25,24 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL
$password = $databaseConfig->getPassword();
// Create login
$this->database()->statement("CREATE LOGIN [$username] WITH PASSWORD = '$password'");
$this->connection()->statement("CREATE LOGIN [$username] WITH PASSWORD = '$password'");
// Create user in the database
// Grant the user permissions specified in the $grants array
// The 'CONNECT' permission is granted automatically
$grants = implode(', ', static::$grants);
return $this->database()->statement("USE [$database]; CREATE USER [$username] FOR LOGIN [$username]; GRANT $grants TO [$username]");
return $this->connection()->statement("USE [$database]; CREATE USER [$username] FOR LOGIN [$username]; GRANT $grants TO [$username]");
}
public function deleteUser(DatabaseConfig $databaseConfig): bool
{
return $this->database()->statement("DROP LOGIN [{$databaseConfig->getUsername()}]");
return $this->connection()->statement("DROP LOGIN [{$databaseConfig->getUsername()}]");
}
public function userExists(string $username): bool
{
return (bool) $this->database()->select("SELECT sp.name as username FROM sys.server_principals sp WHERE sp.name = '{$username}'");
return (bool) $this->connection()->select("SELECT sp.name as username FROM sys.server_principals sp WHERE sp.name = '{$username}'");
}
public function makeConnectionConfig(array $baseConfig, string $databaseName): array
@ -58,7 +58,7 @@ class PermissionControlledMicrosoftSQLServerDatabaseManager extends MicrosoftSQL
// Set the database to SINGLE_USER mode to ensure that
// No other connections are using the database while we're trying to delete it
// Rollback all active transactions
$this->database()->statement("ALTER DATABASE [{$tenant->database()->getName()}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;");
$this->connection()->statement("ALTER DATABASE [{$tenant->database()->getName()}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;");
return parent::deleteDatabase($tenant);
}