From f4ee0a79433694c84cf4cdd51e34060a9e77ccdb Mon Sep 17 00:00:00 2001 From: lukinovec Date: Mon, 13 Apr 2026 17:59:57 +0200 Subject: [PATCH] Make central domain order not matter in `isSubdomain()` --- src/Resolvers/DomainTenantResolver.php | 8 ++++---- tests/SubdomainTest.php | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Resolvers/DomainTenantResolver.php b/src/Resolvers/DomainTenantResolver.php index 77477087..59ebb81f 100644 --- a/src/Resolvers/DomainTenantResolver.php +++ b/src/Resolvers/DomainTenantResolver.php @@ -61,11 +61,11 @@ class DomainTenantResolver extends Contracts\CachedTenantResolver { $centralDomains = Arr::wrap(config('tenancy.identification.central_domains')); - foreach ($centralDomains as $centralDomain) { - if ($domain === $centralDomain) { - return false; - } + if (in_array($domain, $centralDomains, true)) { + return false; + } + foreach ($centralDomains as $centralDomain) { if (Str::endsWith($domain, '.' . $centralDomain)) { return true; } diff --git a/tests/SubdomainTest.php b/tests/SubdomainTest.php index 7d69bb20..62e002f2 100644 --- a/tests/SubdomainTest.php +++ b/tests/SubdomainTest.php @@ -110,10 +110,11 @@ test('we cant use a subdomain that doesnt belong to our central domains', functi }); test('domain resolver correctly determines if string is a subdomain', function() { - config(['tenancy.identification.central_domains' => ['app.test']]); + config(['tenancy.identification.central_domains' => ['site.com', 'blog.site.com']]); - expect(DomainTenantResolver::isSubdomain('foo.app.test'))->toBeTrue(); - expect(DomainTenantResolver::isSubdomain('fooapp.test'))->toBeFalse(); + expect(DomainTenantResolver::isSubdomain('blog.site.com'))->toBeFalse(); + expect(DomainTenantResolver::isSubdomain('tenant.site.com'))->toBeTrue(); + expect(DomainTenantResolver::isSubdomain('tenantsite.com'))->toBeFalse(); }); class SubdomainTenant extends Models\Tenant