diff --git a/src/TenancyServiceProvider.php b/src/TenancyServiceProvider.php index c7eaf0b6..678ebe24 100644 --- a/src/TenancyServiceProvider.php +++ b/src/TenancyServiceProvider.php @@ -40,6 +40,8 @@ class TenancyServiceProvider extends ServiceProvider Route::middlewareGroup('tenancy', [ \Stancl\Tenancy\Middleware\InitializeTenancy::class ]); + + $this->app->register(TenantRouteServiceProvider::class); } /** diff --git a/src/TenantRouteServiceProvider.php b/src/TenantRouteServiceProvider.php new file mode 100644 index 00000000..83f26896 --- /dev/null +++ b/src/TenantRouteServiceProvider.php @@ -0,0 +1,23 @@ +mapTenantRoutes(); + } + + protected function mapTenantRoutes() + { + if (! in_array(request()->getHost(), $this->app['config']['tenancy.exempt_domains'] ?? [])) { + Route::middleware(['web', 'tenancy']) + ->namespace($this->app['config']['tenant_route_namespace'] ?? 'App\Http\Controllers') + ->group(base_path('routes/tenant.php')); + } + } +} diff --git a/src/config/tenancy.php b/src/config/tenancy.php index 00e4b79c..50b6ad75 100644 --- a/src/config/tenancy.php +++ b/src/config/tenancy.php @@ -2,6 +2,7 @@ return [ 'storage_driver' => 'Stancl\Tenancy\StorageDrivers\RedisStorageDriver', + 'tenant_route_namespace' => 'App\Http\Controllers', 'exempt_domains' => [ // 'localhost', ],