diff --git a/assets/config.php b/assets/config.php index a32e4dda..6cd11eca 100644 --- a/assets/config.php +++ b/assets/config.php @@ -11,7 +11,7 @@ return [ 'custom_columns' => [ // 'plan', ], - 'connection' => null, + 'connection' => null, // Your central database connection. Set to null to use the default connection. 'table_names' => [ 'TenantModel' => 'tenants', 'DomainModel' => 'domains', @@ -27,7 +27,7 @@ return [ // 'localhost', ], 'database' => [ - 'based_on' => null, // The connection that will be used as a base for the dynamically created tenant connection. + 'based_on' => null, // The connection that will be used as a base for the dynamically created tenant connection. Set to null to use the default connection. 'prefix' => 'tenant', 'suffix' => '', ], @@ -98,4 +98,5 @@ return [ 'queue_database_deletion' => false, 'delete_database_after_tenant_deletion' => false, // delete the tenant's database after deleting the tenant 'unique_id_generator' => Stancl\Tenancy\UniqueIDGenerators\UUIDGenerator::class, + 'push_initialization_middleware_to_global_stack' => true, ]; diff --git a/src/TenancyServiceProvider.php b/src/TenancyServiceProvider.php index 9687fed6..d475a081 100644 --- a/src/TenancyServiceProvider.php +++ b/src/TenancyServiceProvider.php @@ -78,7 +78,9 @@ class TenancyServiceProvider extends ServiceProvider __DIR__ . '/../assets/migrations/' => database_path('migrations'), ], 'migrations'); - $this->app->make(Kernel::class)->prependMiddleware(Middleware\InitializeTenancy::class); + if ($this->app['config']['tenancy.push_initialization_middleware_to_global_stack'] ?? true) { + $this->app->make(Kernel::class)->prependMiddleware(Middleware\InitializeTenancy::class); + } /* * Since tenancy is initialized in the global middleware stack, this diff --git a/src/TenantManager.php b/src/TenantManager.php index 21c2346b..b6c27665 100644 --- a/src/TenantManager.php +++ b/src/TenantManager.php @@ -301,6 +301,10 @@ class TenantManager public function endTenancy(): self { + if (! $this->initialized) { + return $this; + } + $prevented = $this->event('ending', $this->getTenant()); foreach ($this->tenancyBootstrappers($prevented) as $bootstrapper) {