diff --git a/assets/config.php b/assets/config.php index f8824f29..e4986788 100644 --- a/assets/config.php +++ b/assets/config.php @@ -82,8 +82,9 @@ return [ 'Stancl\Tenancy\Features\TelescopeTags', 'Stancl\Tenancy\Features\TenantRedirect', ], + 'home_route' => '/app', 'migrate_after_creation' => false, // run migrations after creating a tenant - 'delete_database_after_tenant_deletion' => false, // delete tenant's database after deleting the tenant + 'delete_database_after_tenant_deletion' => false, // delete the tenant's database after deleting the tenant 'queue_database_creation' => false, 'queue_database_deletion' => false, 'unique_id_generator' => 'Stancl\Tenancy\UUIDGenerator', diff --git a/src/Middleware/PreventAccessFromTenantDomains.php b/src/Middleware/PreventAccessFromTenantDomains.php index 7e9adf04..52ea9de1 100644 --- a/src/Middleware/PreventAccessFromTenantDomains.php +++ b/src/Middleware/PreventAccessFromTenantDomains.php @@ -24,8 +24,16 @@ class PreventAccessFromTenantDomains { // If the domain is not in exempt domains, it's a tenant domain. // Tenant domains can't have routes without tenancy middleware. - if (! in_array(request()->getHost(), config('tenancy.exempt_domains')) && - ! in_array('tenancy', request()->route()->middleware())) { + $is_an_exempt_domain = in_array($request->getHost(), config('tenancy.exempt_domains')); + $is_a_tenant_domain = ! $is_an_exempt_domain; + + $is_a_tenant_route = in_array('tenancy', $request->route()->middleware()); + + if ($is_a_tenant_domain && ! $is_a_tenant_route) { // accessing web routes from tenant domains + return redirect(config('tenancy.home_route')); + } + + if ($is_an_exempt_domain && $is_a_tenant_route) { // accessing tenant routes on web domains abort(404); } diff --git a/src/Tenant.php b/src/Tenant.php index efc9ccbc..8babd034 100644 --- a/src/Tenant.php +++ b/src/Tenant.php @@ -51,7 +51,7 @@ class Tenant implements ArrayAccess * * @var bool */ - protected $persisted = false; + public $persisted = false; /** * Use new() if you don't want to swap dependencies.