diff --git a/src/Commands/Install.php b/src/Commands/Install.php index af5fe736..224d1ded 100644 --- a/src/Commands/Install.php +++ b/src/Commands/Install.php @@ -84,9 +84,8 @@ class Install extends Command ); } else { return str_replace( - '];\n}', - " protected \$middlewarePriority = [ - \App\Http\Middleware\CheckForMaintenanceMode::class, + "];\n}", + "];\n\n protected \$middlewarePriority = [ \Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class, \Stancl\Tenancy\Middleware\InitializeTenancy::class, \Illuminate\Session\Middleware\StartSession::class, @@ -96,7 +95,8 @@ class Install extends Command \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Auth\Middleware\Authorize::class, - ];", + ]; +}", file_get_contents(app_path('Http/Kernel.php')) ); } diff --git a/tests/CommandsTest.php b/tests/CommandsTest.php index 6bcf6fd9..39bb46e2 100644 --- a/tests/CommandsTest.php +++ b/tests/CommandsTest.php @@ -127,7 +127,11 @@ class CommandsTest extends TestCase mkdir($dir, 0777, true); } - file_put_contents(app_path('Http/Kernel.php'), file_get_contents(__DIR__ . '/Etc/defaultHttpKernel.stub')); + if (app()->version()[0] === '6') { + file_put_contents(app_path('Http/Kernel.php'), file_get_contents(__DIR__ . '/Etc/defaultHttpKernelv6.stub')); + } else { + file_put_contents(app_path('Http/Kernel.php'), file_get_contents(__DIR__ . '/Etc/defaultHttpKernelv7.stub')); + } $this->artisan('tenancy:install') ->expectsQuestion('Do you wish to publish the migrations that create these tables?', 'yes'); @@ -136,7 +140,12 @@ class CommandsTest extends TestCase $this->assertFileExists(database_path('migrations/2019_09_15_000010_create_tenants_table.php')); $this->assertFileExists(database_path('migrations/2019_09_15_000020_create_domains_table.php')); $this->assertDirectoryExists(database_path('migrations/tenant')); - $this->assertSame(file_get_contents(__DIR__ . '/Etc/modifiedHttpKernel.stub'), file_get_contents(app_path('Http/Kernel.php'))); + + if (app()->version()[0] === '6') { + $this->assertSame(file_get_contents(__DIR__ . '/Etc/modifiedHttpKernelv6.stub'), file_get_contents(app_path('Http/Kernel.php'))); + } else { + $this->assertSame(file_get_contents(__DIR__ . '/Etc/modifiedHttpKernelv7.stub'), file_get_contents(app_path('Http/Kernel.php'))); + } } /** @test */ diff --git a/tests/Etc/defaultHttpKernel.stub b/tests/Etc/defaultHttpKernelv6.stub similarity index 100% rename from tests/Etc/defaultHttpKernel.stub rename to tests/Etc/defaultHttpKernelv6.stub diff --git a/tests/Etc/defaultHttpKernelv7.stub b/tests/Etc/defaultHttpKernelv7.stub new file mode 100644 index 00000000..d98a24d5 --- /dev/null +++ b/tests/Etc/defaultHttpKernelv7.stub @@ -0,0 +1,66 @@ + [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + // \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + 'throttle:60,1', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} \ No newline at end of file diff --git a/tests/Etc/modifiedHttpKernel.stub b/tests/Etc/modifiedHttpKernelv6.stub similarity index 100% rename from tests/Etc/modifiedHttpKernel.stub rename to tests/Etc/modifiedHttpKernelv6.stub diff --git a/tests/Etc/modifiedHttpKernelv7.stub b/tests/Etc/modifiedHttpKernelv7.stub new file mode 100644 index 00000000..037a57f4 --- /dev/null +++ b/tests/Etc/modifiedHttpKernelv7.stub @@ -0,0 +1,80 @@ + [ + \Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class, + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + // \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + \Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class, + 'throttle:60,1', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; + + protected $middlewarePriority = [ + \Stancl\Tenancy\Middleware\PreventAccessFromTenantDomains::class, + \Stancl\Tenancy\Middleware\InitializeTenancy::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, + \Illuminate\Routing\Middleware\ThrottleRequests::class, + \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + \Illuminate\Auth\Middleware\Authorize::class, + ]; +} \ No newline at end of file