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

Take care of doubling tenant keys in TenancyUrlGenerator, add regression test for using UrlGenerator and RootUrl bootstrappers together

This commit is contained in:
lukinovec 2024-08-29 16:09:59 +02:00
parent 2266c47722
commit 42e7ec329c
2 changed files with 55 additions and 2 deletions

View file

@ -53,7 +53,24 @@ class TenancyUrlGenerator extends UrlGenerator
{
[$name, $parameters] = $this->prepareRouteInputs($name, Arr::wrap($parameters));
return parent::route($name, $parameters, $absolute);
$url = parent::route($name, $parameters, $absolute);
if (isset($parameters[PathTenantResolver::tenantParameterName()])) {
// Ensure the tenant key is present in the URL just once
// This is necessary when using UrlGeneratorBootstrapper with RootUrlBootstrapper
$tenantId = $parameters[PathTenantResolver::tenantParameterName()];
$afterTenant = str($url)->afterLast($tenantId)->toString();
$beforeTenant = str($url)->before($tenantId)->toString();
if (! $absolute && str(url('/'))->contains($tenantId)) {
// If the URL should be relative and the tenant key is already present in the full URL, don't add it again
return $afterTenant;
}
return $beforeTenant . $tenantId . $afterTenant;
}
return $url;
}
/**