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

Make schema configurable in CreatePostgresUserForTenant

This commit is contained in:
lukinovec 2023-07-28 13:31:06 +02:00
parent 2a5683122e
commit 4ed5aa0add

View file

@ -51,11 +51,12 @@ class CreatePostgresUserForTenant implements ShouldQueue
{ {
/** @var \Stancl\Tenancy\Database\Contracts\StatefulTenantDatabaseManager $databaseManager */ /** @var \Stancl\Tenancy\Database\Contracts\StatefulTenantDatabaseManager $databaseManager */
$databaseManager = $this->tenant->database()->manager(); $databaseManager = $this->tenant->database()->manager();
$schema = config('database.connections.pgsql.search_path', 'public');
/** @var Model[] $tenantModels */ /** @var Model[] $tenantModels */
$tenantModels = tenancy()->getTenantModels(); $tenantModels = tenancy()->getTenantModels();
$databaseManager->database()->transaction(function () use ($userName, $databaseManager, $tenantModels) { $databaseManager->database()->transaction(function () use ($userName, $databaseManager, $tenantModels, $schema) {
foreach ($tenantModels as $model) { foreach ($tenantModels as $model) {
$table = $model->getTable(); $table = $model->getTable();
@ -64,7 +65,7 @@ class CreatePostgresUserForTenant implements ShouldQueue
$databaseManager->database()->statement($formattedStatement); $databaseManager->database()->statement($formattedStatement);
} }
$formattedStatement = $databaseManager->database()->select("SELECT format('GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO %I', '$userName')")[0]->format; $formattedStatement = $databaseManager->database()->select("SELECT format('GRANT USAGE ON ALL SEQUENCES IN SCHEMA %I TO %I', '$schema', '$userName')")[0]->format;
$databaseManager->database()->statement($formattedStatement); $databaseManager->database()->statement($formattedStatement);
} }
}); });