mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 15:34:03 +00:00
[1.8.0] Allow conflicting routes (#114)
* PreventAccessFromTenantDomains middleware * Apply fixes from StyleCI * Install command * Switch order of middleware * Apply middleware to $middleware instead of web, fix tests * Apply fixes from StyleCI * Fix tests * Fix tests * wip * wip
This commit is contained in:
parent
2fd3662eb7
commit
0a57f9d3df
3 changed files with 40 additions and 4 deletions
|
|
@ -36,11 +36,18 @@ class Install extends Command
|
|||
]);
|
||||
$this->info('✔️ Created config/tenancy.php');
|
||||
|
||||
\file_put_contents(app_path('Http/Kernel.php'), \str_replace(
|
||||
$newKernel = \str_replace(
|
||||
'protected $middlewarePriority = [',
|
||||
"protected \$middlewarePriority = [\n \Stancl\Tenancy\Middleware\InitializeTenancy::class,",
|
||||
"protected \$middlewarePriority = [
|
||||
\Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class,
|
||||
\Stancl\Tenancy\Middleware\InitializeTenancy::class,",
|
||||
\file_get_contents(app_path('Http/Kernel.php'))
|
||||
));
|
||||
);
|
||||
|
||||
$newKernel = \str_replace("'web' => [", "'web' => [
|
||||
\Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class,", $newKernel);
|
||||
|
||||
\file_put_contents(app_path('Http/Kernel.php'), $newKernel);
|
||||
$this->info('✔️ Set middleware priority');
|
||||
|
||||
\file_put_contents(
|
||||
|
|
@ -58,7 +65,7 @@ class Install extends Command
|
|||
|
|
||||
*/
|
||||
|
||||
Route::get('/your/application/homepage', function () {
|
||||
Route::get('/', function () {
|
||||
return 'This is your multi-tenant application. The uuid of the current tenant is ' . tenant('uuid');
|
||||
});
|
||||
"
|
||||
|
|
|
|||
27
src/Middleware/PreventAccessFromTenantDomains.php
Normal file
27
src/Middleware/PreventAccessFromTenantDomains.php
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy\Middleware;
|
||||
|
||||
use Closure;
|
||||
|
||||
class PreventAccessFromTenantDomains
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
// 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())) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
|
@ -246,6 +246,7 @@ class Kernel extends HttpKernel
|
|||
*/
|
||||
protected \$middlewareGroups = [
|
||||
'web' => [
|
||||
\Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class,
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
|
|
@ -288,6 +289,7 @@ class Kernel extends HttpKernel
|
|||
* @var array
|
||||
*/
|
||||
protected \$middlewarePriority = [
|
||||
\Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class,
|
||||
\Stancl\Tenancy\Middleware\InitializeTenancy::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue